@Test public void equalsHashcodeTest() { UnmodSortedIterable<Integer> a = () -> FunctionUtils.emptyUnmodSortedIterator(); UnmodSortedIterable<Integer> b = () -> FunctionUtils.emptyUnmodSortedIterator(); UnmodSortedIterable<Integer> c = () -> new UnmodSortedIterator<Integer>() { private final Iterator<Integer> intern = Arrays.asList(1).iterator(); @Override public boolean hasNext() { return intern.hasNext(); } @Override public Integer next() { return intern.next(); } }; assertEquals(UnmodIterable.hashCode(a), UnmodIterable.hashCode(a)); assertEquals(UnmodIterable.hashCode(a), UnmodIterable.hashCode(b)); assertNotEquals(UnmodIterable.hashCode(a), UnmodIterable.hashCode(c)); assertEquals(0, UnmodIterable.hashCode(Arrays.asList(new String[] {null}))); assertTrue(UnmodSortedIterable.equals(a, a)); assertTrue(UnmodSortedIterable.equals(a, b)); assertTrue(UnmodSortedIterable.equals(b, a)); assertTrue(UnmodSortedIterable.equals(null, null)); assertFalse(UnmodSortedIterable.equals(a, null)); assertFalse(UnmodSortedIterable.equals(null, a)); assertFalse(UnmodSortedIterable.equals(a, c)); assertFalse(UnmodSortedIterable.equals(c, a)); }
@Test public void equalsHashcode() { UnmodSortedIterable<Integer> a = () -> new UnmodSortedIterator<Integer>() { private final Iterator<Integer> intern = Arrays.asList(1, 2, 3).iterator(); @Override public boolean hasNext() { return intern.hasNext(); } @Override public Integer next() { return intern.next(); } }; UnmodSortedIterable<Integer> b = () -> new UnmodSortedIterator<Integer>() { private final Iterator<Integer> intern = Arrays.asList(1, 2, 3).iterator(); @Override public boolean hasNext() { return intern.hasNext(); } @Override public Integer next() { return intern.next(); } }; UnmodSortedIterable<Integer> c = () -> new UnmodSortedIterator<Integer>() { private final Iterator<Integer> intern = Arrays.asList(1, 2, 3, 4).iterator(); @Override public boolean hasNext() { return intern.hasNext(); } @Override public Integer next() { return intern.next(); } }; UnmodSortedIterable<Integer> d = () -> new UnmodSortedIterator<Integer>() { private final Iterator<Integer> intern = Arrays.asList(1, 2, 2).iterator(); @Override public boolean hasNext() { return intern.hasNext(); } @Override public Integer next() { return intern.next(); } }; assertEquals(UnmodIterable.hashCode(a), UnmodIterable.hashCode(a)); assertEquals(UnmodIterable.hashCode(a), UnmodIterable.hashCode(b)); assertNotEquals(UnmodIterable.hashCode(a), UnmodIterable.hashCode(c)); assertNotEquals(UnmodIterable.hashCode(b), UnmodIterable.hashCode(d)); assertTrue(UnmodSortedIterable.equals(a, a)); assertTrue(UnmodSortedIterable.equals(a, b)); assertTrue(UnmodSortedIterable.equals(b, a)); assertFalse(UnmodSortedIterable.equals(a, c)); assertFalse(UnmodSortedIterable.equals(c, a)); assertFalse(UnmodSortedIterable.equals(b, d)); assertFalse(UnmodSortedIterable.equals(d, b)); }