diff --git a/graphjet-core/src/test/java/com/twitter/graphjet/algorithms/filter/ANDFilterTest.java b/graphjet-core/src/test/java/com/twitter/graphjet/algorithms/filter/ANDFilterTest.java index 1dc8d31f..6ff84c75 100644 --- a/graphjet-core/src/test/java/com/twitter/graphjet/algorithms/filter/ANDFilterTest.java +++ b/graphjet-core/src/test/java/com/twitter/graphjet/algorithms/filter/ANDFilterTest.java @@ -17,7 +17,11 @@ package com.twitter.graphjet.algorithms.filter; import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import com.twitter.graphjet.algorithms.filters.RecentTweetFilter; +import com.twitter.graphjet.stats.StatsReceiver; import org.junit.Test; import com.twitter.graphjet.algorithms.filters.ANDFilters; @@ -27,6 +31,7 @@ import com.twitter.graphjet.stats.NullStatsReceiver; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; public class ANDFilterTest { // Dummy filter that always return true @@ -62,6 +67,9 @@ public void testNoFilter() throws Exception { ANDFilters andFilters = new ANDFilters(new ArrayList<>(), new NullStatsReceiver()); SmallArrayBasedLongToDoubleMap[] socialProofs = {}; assertEquals(false, andFilters.filterResult(0L, socialProofs)); + + socialProofs = new SmallArrayBasedLongToDoubleMap[9]; + assertFalse(andFilters.filterResult(1633L, socialProofs)); } @Test @@ -84,4 +92,16 @@ public void testWithFilters() throws Exception { andFilter = new ANDFilters(filters, new NullStatsReceiver()); assertEquals(true, andFilter.filterResult(0, new SmallArrayBasedLongToDoubleMap[]{})); } + + @Test + public void testWithRecentTweetFilter() { + List filters = new LinkedList(); + StatsReceiver statsReceiver = new NullStatsReceiver(); + RecentTweetFilter recentTweetFilter = new RecentTweetFilter(2147483639L, statsReceiver); + filters.add(recentTweetFilter); + ANDFilters andFilters = new ANDFilters(filters, statsReceiver); + SmallArrayBasedLongToDoubleMap[] smallArrayBasedLongToDoubleMapArray = new SmallArrayBasedLongToDoubleMap[5]; + + assertFalse(andFilters.filterResult(1L, smallArrayBasedLongToDoubleMapArray)); + } } diff --git a/graphjet-core/src/test/java/com/twitter/graphjet/algorithms/salsa/SalsaRequestBuilderTest.java b/graphjet-core/src/test/java/com/twitter/graphjet/algorithms/salsa/SalsaRequestBuilderTest.java new file mode 100644 index 00000000..28f851b3 --- /dev/null +++ b/graphjet-core/src/test/java/com/twitter/graphjet/algorithms/salsa/SalsaRequestBuilderTest.java @@ -0,0 +1,43 @@ +package com.twitter.graphjet.algorithms.salsa; + +import com.google.common.base.Preconditions; +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Unit tests for class {@link SalsaRequestBuilder}. + * + * @date 2017-09-18 + * @see SalsaRequestBuilder + **/ +public class SalsaRequestBuilderTest { + @Test + public void testBuildAllDesiredPropertiesAreSetAutomatically() { + SalsaRequestBuilder salsaRequestBuilder = new SalsaRequestBuilder(211L); + salsaRequestBuilder.build(); + SalsaRequest salsaRequest = salsaRequestBuilder.build(); + + assertEquals(0.3, salsaRequest.getResetProbability(), 0.01); + assertEquals(1, salsaRequest.getMaxSocialProofTypeSize()); + assertFalse(salsaRequest.removeCustomizedBitsNodes()); + assertEquals(0.9, salsaRequest.getQueryNodeWeightFraction(), 0.01); + assertEquals(1, salsaRequest.getNumRandomWalks()); + assertEquals(0, salsaRequest.getMaxSocialProofSize()); + assertEquals(211L, salsaRequest.getQueryNode()); + assertEquals(1, salsaRequest.getMaxRandomWalkLength()); + assertEquals(10, salsaRequest.getMaxNumResults()); + } + + @Test + public void testWithMaxRandomWalkLengthThrowsIllegalArgumentException() { + SalsaRequestBuilder salsaRequestBuilder = new SalsaRequestBuilder(211L); + + try { + salsaRequestBuilder.withMaxRandomWalkLength(100); + fail("Expecting exception: IllegalArgumentException"); + } catch (IllegalArgumentException e) { + assertEquals(Preconditions.class.getName(), e.getStackTrace()[0].getClassName()); + } + } +} \ No newline at end of file