/*! #if ($TemplateOptions.KTypeGeneric) !*/ @SuppressWarnings("unchecked") @Test public void testHashCodeWithNulls() { final KTypeSet<KType> l1 = getFrom(this.k1, null, this.k3); final KTypeSet<KType> l2 = getFrom(this.k1, null); l2.add(this.k3); Assert.assertEquals(l1.hashCode(), l2.hashCode()); Assert.assertEquals(l1, l2); }
@Test /*! #if ($TemplateOptions.KTypeGeneric) !*/ @SuppressWarnings("unchecked") /*! #end !*/ public void testHashCodeEquals() { final KTypeSet<KType> l0 = getFrom(); Assert.assertEquals(0, l0.hashCode()); Assert.assertEquals(l0, createNewSetInstance()); final KTypeSet<KType> l1 = getFrom(this.k1, this.k2, this.k3); final KTypeSet<KType> l2 = getFrom(this.k1, this.k2); l2.add(this.k3); Assert.assertEquals(l1.hashCode(), l2.hashCode()); Assert.assertEquals(l1, l2); l1.add(this.keyE); l2.add(this.keyE); Assert.assertEquals(l1.hashCode(), l2.hashCode()); Assert.assertEquals(l1, l2); }
@Test /*! #if ($TemplateOptions.KTypeGeneric) !*/ @SuppressWarnings("unchecked") /*! #end !*/ public void testEquals() { final KTypeSet<KType> l0 = getFrom(); Assert.assertEquals(l0, createNewSetInstance()); KTypeSet<KType> l1 = getFrom(this.k1, this.k2, this.k3, this.k4, this.k5); KTypeSet<KType> l2 = getFrom(this.k2, this.k1); Assert.assertNotEquals(l1, l2); Assert.assertNotEquals(l2, l1); Assert.assertFalse(l1.equals(null)); Assert.assertFalse(l2.equals(null)); l2.add(this.k5); Assert.assertNotEquals(l1, l2); Assert.assertNotEquals(l2, l1); l2.add(this.k4); Assert.assertNotEquals(l1, l2); Assert.assertNotEquals(l2, l1); l2.add(this.k3); Assert.assertEquals(l1, l2); Assert.assertEquals(l2, l1); // Check consistency with hashCode: Assert.assertEquals(l1.hashCode(), l2.hashCode()); l1.add(this.keyE); Assert.assertNotEquals(l1, l2); Assert.assertNotEquals(l2, l1); l2.add(this.keyE); Assert.assertEquals(l1, l2); Assert.assertEquals(l2, l1); // Check consistency with hashCode: Assert.assertEquals(l1.hashCode(), l2.hashCode()); l2.remove(this.keyE); Assert.assertNotEquals(l1, l2); Assert.assertNotEquals(l2, l1); l2.add(this.keyE); Assert.assertEquals(l1, l2); Assert.assertEquals(l2, l1); // Check consistency with hashCode: Assert.assertEquals(l1.hashCode(), l2.hashCode()); l2.remove(this.k7); // not present, sets are still OK Assert.assertEquals(l1, l2); Assert.assertEquals(l2, l1); // Check consistency with hashCode: Assert.assertEquals(l1.hashCode(), l2.hashCode()); l2.remove(this.k2); Assert.assertNotEquals(l1, l2); Assert.assertNotEquals(l2, l1); l1.remove(this.k2); Assert.assertEquals(l1, l2); Assert.assertEquals(l2, l1); // Check consistency with hashCode: Assert.assertEquals(l1.hashCode(), l2.hashCode()); l1.add(this.k7); Assert.assertNotEquals(l1, l2); Assert.assertNotEquals(l2, l1); l2.clear(); Assert.assertNotEquals(l1, l2); Assert.assertNotEquals(l2, l1); l1.clear(); Assert.assertEquals(l1, l2); Assert.assertEquals(l2, l1); // Check consistency with hashCode: Assert.assertEquals(l1.hashCode(), l2.hashCode()); // Same size, different contents l1 = getFrom(this.k1, this.k2, this.k3, this.k4, this.k5); l2 = getFrom(this.k2, this.k1, this.key5, this.key6, this.key7); Assert.assertNotEquals(l1, l2); Assert.assertNotEquals(l2, l1); }