import static org.junit.Assert.assertEquals; import org.junit.Test; import components.set.Set; public final class SetSecondary1LTest { /** * Construct and return a {@code Set} containing the given * {@code String}s. * * @param args * the {@code String}s to put in the set * @return {@code Set} of the given {@code String}s * @ensures createFromArgs = [the Set of the given Strings] */ private static Set createFromArgs(String... args) { Set set = new SetSecondary1L(); for (String s : args) { set.add(s); } return set; } @Test public void testAddEmptyEmpty() { Set s1 = createFromArgs(); Set s1Expected = createFromArgs(); Set s2 = createFromArgs(); Set s2Expected = createFromArgs(); s1.add(s2); assertEquals(s1Expected, s1); assertEquals(s2Expected, s2); } @Test public void testAddNonEmptyEmpty() { Set s1 = createFromArgs("one"); Set s1Expected = createFromArgs("one"); Set s2 = createFromArgs(); Set s2Expected = createFromArgs(); s1.add(s2); assertEquals(s1Expected, s1); assertEquals(s2Expected, s2); } @Test public void testAddEmptyNonEmpty() { Set s1 = createFromArgs(); Set s1Expected = createFromArgs("one"); Set s2 = createFromArgs("one"); Set s2Expected = createFromArgs(); s1.add(s2); assertEquals(s1Expected, s1); assertEquals(s2Expected, s2); } @Test public void testAddNonEmptyNonEmptyNonSubset() { Set s1 = createFromArgs("one", "two"); Set s1Expected = createFromArgs("one", "two", "three"); Set s2 = createFromArgs("two", "three"); Set s2Expected = createFromArgs("two"); s1.add(s2); assertEquals(s1Expected, s1); assertEquals(s2Expected, s2); } @Test public final void testRemoveEmptyEmpty() { Set s1 = createFromArgs(); Set s1Expected = createFromArgs(); Set s2 = createFromArgs(); Set s2Expected = createFromArgs(); Set result = s1.remove(s2); Set resultExpected = createFromArgs(); assertEquals(s1Expected, s1); assertEquals(s2Expected, s2); assertEquals(resultExpected, result); } @Test public final void testRemoveNonEmptyEmpty() { Set s1 = createFromArgs("one"); Set s1Expected = createFromArgs("one"); Set s2 = createFromArgs(); Set s2Expected = createFromArgs(); Set result = s1.remove(s2); Set resultExpected = createFromArgs(); assertEquals(s1Expected, s1); assertEquals(s2Expected, s2); assertEquals(resultExpected, result); } @Test public final void testRemoveEmptyNonEmpty() { Set s1 = createFromArgs(); Set s1Expected = createFromArgs(); Set s2 = createFromArgs("one"); Set s2Expected = createFromArgs("one"); Set result = s1.remove(s2); Set resultExpected = createFromArgs(); assertEquals(s1Expected, s1); assertEquals(s2Expected, s2); assertEquals(resultExpected, result); } @Test public final void testRemoveNonEmptyNonEmptySubset() { Set s1 = createFromArgs("one", "two"); Set s1Expected = createFromArgs("two"); Set s2 = createFromArgs("one"); Set s2Expected = createFromArgs("one"); Set result = s1.remove(s2); Set resultExpected = createFromArgs("one"); assertEquals(s1Expected, s1); assertEquals(s2Expected, s2); assertEquals(resultExpected, result); } @Test public final void testRemoveNonEmptyNonEmptyNonSubset() { Set s1 = createFromArgs("two"); Set s1Expected = createFromArgs("two"); Set s2 = createFromArgs("one"); Set s2Expected = createFromArgs("one"); Set result = s1.remove(s2); Set resultExpected = createFromArgs(); assertEquals(s1Expected, s1); assertEquals(s2Expected, s2); assertEquals(resultExpected, result); } @Test public final void testRemoveNonEmptyNonEmptyOverlapping() { Set s1 = createFromArgs("one", "two"); Set s1Expected = createFromArgs("one"); Set s2 = createFromArgs("two", "three"); Set s2Expected = createFromArgs("two", "three"); Set result = s1.remove(s2); Set resultExpected = createFromArgs("two"); assertEquals(s1Expected, s1); assertEquals(s2Expected, s2); assertEquals(resultExpected, result); } }