import org.junit.Ignore; import org.junit.Test; import java.util.List; import static java.util.Arrays.asList; import static java.util.Collections.emptyList; import static org.junit.Assert.assertEquals; public class RelationshipComputerTest { @Test public void testThatTwoEmptyListsAreConsideredEqual() { Relationship computedRelationship = new RelationshipComputer<>().computeRelationship( emptyList(), emptyList()); assertEquals(Relationship.EQUAL, computedRelationship); } @Ignore("Remove to run test") @Test public void testEmptyListIsSublistOfNonEmptyList() { Relationship relationship = new RelationshipComputer<>().computeRelationship( emptyList(), asList(1, 2, 3)); assertEquals(Relationship.SUBLIST, relationship); } @Ignore("Remove to run test") @Test public void testNonEmptyListIsSuperlistOfEmptyList() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList('1', '2', '3'), emptyList()); assertEquals(Relationship.SUPERLIST, relationship); } @Ignore("Remove to run test") @Test public void testListIsEqualToItself() { List<String> anyList = asList("1", "2", "3"); Relationship relationship = new RelationshipComputer<String>().computeRelationship( anyList, anyList); assertEquals(Relationship.EQUAL, relationship); } @Ignore("Remove to run test") @Test public void testDifferentListsOfTheSameLengthAreUnequal() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList(1, 2, 3), asList(2, 3, 4)); assertEquals(Relationship.UNEQUAL, relationship); } @Ignore("Remove to run test") @Test public void testSublistCheckDoesNotAbortAfterFalseStart() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList('1', '2', '5'), asList('0', '1', '2', '3', '1', '2', '5', '6')); assertEquals(Relationship.SUBLIST, relationship); } @Ignore("Remove to run test") @Test public void testSublistCheckHandlesExtraneousRepeatsOfFirstEntry() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList("1", "1", "2"), asList("0", "1", "1", "1", "2", "1", "2")); assertEquals(Relationship.SUBLIST, relationship); } @Ignore("Remove to run test") @Test public void testSublistAtStart() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList(0, 1, 2), asList(0, 1, 2, 3, 4, 5)); assertEquals(Relationship.SUBLIST, relationship); } @Ignore("Remove to run test") @Test public void testSublistInMiddle() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList('2', '3', '4'), asList('0', '1', '2', '3', '4', '5')); assertEquals(Relationship.SUBLIST, relationship); } @Ignore("Remove to run test") @Test public void testSublistAtEnd() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList("3", "4", "5"), asList("0", "1", "2", "3", "4", "5")); assertEquals(Relationship.SUBLIST, relationship); } @Ignore("Remove to run test") @Test public void testAtStartOfSuperlist() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList(0, 1, 2, 3, 4, 5), asList(0, 1, 2)); assertEquals(Relationship.SUPERLIST, relationship); } @Ignore("Remove to run test") @Test public void testInMiddleOfSuperlist() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList('0', '1', '2', '3', '4', '5'), asList('2', '3')); assertEquals(Relationship.SUPERLIST, relationship); } @Ignore("Remove to run test") @Test public void testAtEndOfSuperlist() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList("0", "1", "2", "3", "4", "5"), asList("3", "4", "5")); assertEquals(Relationship.SUPERLIST, relationship); } @Ignore("Remove to run test") @Test public void testFirstListMissingElementFromSecondList() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList(1, 3), asList(1, 2, 3)); assertEquals(Relationship.UNEQUAL, relationship); } @Ignore("Remove to run test") @Test public void testSecondListMissingElementFromFirstList() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList('1', '2', '3'), asList('1', '3')); assertEquals(Relationship.UNEQUAL, relationship); } @Ignore("Remove to run test") @Test public void testThatListOrderingIsAccountedFor() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList("1", "2", "3"), asList("3", "2", "1")); assertEquals(Relationship.UNEQUAL, relationship); } @Ignore("Remove to run test") @Test public void testThatListsWithSameDigitsButDifferentNumbersAreUnequal() { Relationship relationship = new RelationshipComputer<>().computeRelationship( asList(1, 0, 1), asList(10, 1)); assertEquals(Relationship.UNEQUAL, relationship); } }