### Question:
GroupTransition { @Override public boolean equals(Object object) { if (this == object) { return true; } if (object == null || object.getClass() != getClass()) { return false; } final GroupTransition other = (GroupTransition) object; return groupIn.equals(other.groupIn) && groupOut.equals(other.groupOut); } GroupTransition(String groupIn, String groupOut); String getIn(); String getOut(); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString();  }### Answer:
@Test void testEquals() { final GroupTransition transition = new GroupTransition("a", "a"); assertEquals(transition, transition); assertEquals(new GroupTransition("a", "a"), new GroupTransition("a", "a")); assertEquals(new GroupTransition("a", "b"), new GroupTransition("a", "b")); assertNotEquals(new GroupTransition("a", "a"), null); assertNotEquals(new GroupTransition("a", "a"), new Object()); assertNotEquals(new GroupTransition("a", "b"), new GroupTransition("b", "a")); assertNotEquals(new GroupTransition("a", "b"), new GroupTransition("a", "a")); assertNotEquals(new GroupTransition("a", "b"), new GroupTransition("b", "b")); assertNotEquals(new GroupTransition("a", "a"), new GroupTransition("b", "a")); assertNotEquals(new GroupTransition("a", "a"), new GroupTransition("b", "b")); }