public void testHashCodeAndEquals() { Tuple a = new Tuple(new Object[]{"a", "b", "c"}); Tuple b = new Tuple(new Object[]{"a", "b", "c"}); Tuple c = new Tuple(new Object[]{"d", "b", "c"}); Tuple d = new Tuple(new Object[]{"a", "b"}); Tuple2<String, String> e = new Tuple2<String, String>("a", "b"); Tuple2<String, String> f = new Tuple2<String, String>("a", "c"); assertEquals("hashcode", a.hashCode(), b.hashCode()); assertTrue("hashcode", a.hashCode() != c.hashCode()); assertEquals("a and b", a, b); assertFalse("a != c", a.equals(c)); assertFalse("!a.equals(null)", a.equals(null)); assertTrue("d.equals(e)", d.equals(e)); assertTrue("e.equals(d)", e.equals(d)); assertFalse("!e.equals(f)", e.equals(f)); assertFalse("!f.equals(e)", f.equals(e)); }