/** * A simple case with only two elements, the first one being omitted. */ @Test public void testSimple() { boolean reverse = false; do { final FrequencySortedSet<Integer> set = new FrequencySortedSet<>(reverse); assertFalse(set.add(12, 0)); assertTrue (set.add(18, 11)); assertEquals(Collections.singleton(18), set); assertArrayEquals(new int[] {11}, set.frequencies()); } while ((reverse = !reverse) == true); }
/** * Tests creation of various subsets. */ @Test @DependsOnMethod("testTwoElements") public void testSubSet() { final FrequencySortedSet<Integer> set = new FrequencySortedSet<>(); set.addAll(Arrays.asList(2, 5, 3, 2, 4, 2, 3, 6, 2)); assertArrayEquals(new Integer[] {5, 4, 6, 3, 2}, set.toArray()); assertArrayEquals(new int[] {1, 1, 1, 2, 4}, set.frequencies()); assertArrayEquals("Expected all elements occurring less often than 2.", new Integer[] {5, 4, 6, 3}, set.headSet(2).toArray()); assertArrayEquals("Expected all elements occurring less often than 3.", new Integer[] {5, 4, 6}, set.headSet(3).toArray()); assertArrayEquals("Expected all elements occurring at least as often than 3.", new Integer[] {3, 2}, set.tailSet(3).toArray()); assertArrayEquals("Expected all elements occurring at least as often than 3 but less than 2.", new Integer[] {3}, set.subSet(3, 2).toArray()); assertTrue(set.subSet(2, 3).isEmpty()); } }
/** * Simple test with 2 elements. */ @Test @DependsOnMethod("testSimple") public void testTwoElements() { final FrequencySortedSet<Integer> set = new FrequencySortedSet<>(true); for (int i=0; i<10; i++) { if ((i % 3) == 0) { set.add(11); } set.add(9); } assertEquals(2, set.size()); assertEquals(Integer.valueOf(9), set.first()); assertEquals(Integer.valueOf(11), set.last()); assertArrayEquals(new int[] {10, 4}, set.frequencies()); }