import java.util.ArrayList; import org.junit.Before; import org.junit.Test; import static org.junit.jupiter.api.Assertions.*; public class Tester { @Test public void testInstantiateGarments() { Garment g = new Garment("sock", "soiled"); assertEquals("a soiled sock", g.toString()); } @Test public void testInstantiateGarments2() { Garment g = new Garment("sock", "soiled"); assertEquals("a soiled sock", g.toString()); g = new Garment("pair of pants", "clean"); assertEquals("a pair of pants", g.toString()); } @Test public void testInstantiateAppliances() { Washer w = new Washer(); assertEquals(0, w.unload().size()); Dryer d = new Dryer(); assertEquals(0, d.unload().size()); } @Test public void testHandWashGarments() { Garment g = new Garment("sock", "soiled"); assertEquals("a soiled sock", g.toString()); g.wash(); assertEquals("a soapy sock", g.toString()); g.rinse(); assertEquals("a wet sock", g.toString()); g.dry(); assertEquals("a sock", g.toString()); } @Test public void testHandWashGarments2() { Garment g1 = new Garment("sock", "soiled"); assertEquals("a soiled sock", g1.toString()); Garment g2 = new Garment("scarf", "soiled"); g1.wash(); g1.rinse(); g1.dry(); g2.dry(); assertEquals("a sock", g1.toString()); assertEquals("a soiled scarf", g2.toString()); g1.wash(); assertEquals("a soapy sock", g1.toString()); g1.dry(); assertEquals("a soapy sock", g1.toString()); } @Test public void testBasicWashCycle() { Washer w = new Washer(); Garment sock = new Garment("sock","soiled"); Garment othersock = new Garment("sock","soiled"); Garment furCoat = new Garment("fur coat","soiled"); Garment shirt = new Garment("shirt","soiled"); w.load(sock); w.load(shirt); w.load(othersock); w.pressStartButton(); assertEquals("a wet sock", sock.toString()); assertEquals("a wet sock", othersock.toString()); assertEquals("a wet shirt", shirt.toString()); assertEquals(3, w.unload().size()); assertEquals(0, w.unload().size()); } @Test public void testBasicDryCycle() { Dryer d = new Dryer(); Garment sock = new Garment("sock","wet"); Garment othersock = new Garment("sock","wet"); Garment furCoat = new Garment("fur coat","wet"); Garment shirt = new Garment("shirt","wet"); d.load(sock); d.load(shirt); d.load(othersock); d.pressStartButton(); assertEquals("a sock", sock.toString()); assertEquals("a sock", othersock.toString()); assertEquals("a shirt", shirt.toString()); assertEquals(3, d.unload().size()); assertEquals(0, d.unload().size()); } @Test public void testBasicWashDryCycle() { Washer w = new Washer(); Dryer d = new Dryer(); Garment sock = new Garment("sock","wet"); Garment othersock = new Garment("sock","wet"); Garment furCoat = new Garment("fur coat","wet"); Garment shirt = new Garment("shirt","wet"); w.load(sock); w.load(shirt); w.load(othersock); w.pressStartButton(); assertEquals("a wet sock", sock.toString()); assertEquals("a wet sock", othersock.toString()); assertEquals("a wet shirt", shirt.toString()); ArrayList items = w.unload(); assertEquals(3, items.size()); assertEquals(0, d.unload().size()); for (int i=0; i items = w2.unload(); assertEquals(2, items.size()); d1.load(shirt); d2.load(blouse); d1.pressStartButton(); assertEquals("a soiled pair of jeans", jeans.toString()); assertEquals("a wet blouse", blouse.toString()); assertEquals("a shirt", shirt.toString()); w1.load(shirt); w1.pressStartButton(); items = w1.unload(); assertEquals(2, items.size()); assertEquals("a wet pair of jeans", jeans.toString()); assertEquals("a wet blouse", blouse.toString()); assertEquals("a wet shirt", shirt.toString()); d2.load(jeans); d2.pressStartButton(); assertEquals("a pair of jeans", jeans.toString()); assertEquals("a blouse", blouse.toString()); assertEquals("a wet shirt", shirt.toString()); } @Test public void testLaundramat() { java.util.Random rng = new java.util.Random(); ArrayList washers = new ArrayList(); int NUM_WASHERS = 20; int NUM_DRYERS = 12; int NUM_GARMENTS = 120; for (int i=0; i dryers = new ArrayList(); for (int i=0; i stuff = new ArrayList(); for (int i=0; i notwashed = new ArrayList(); for (int i=0; i washed = new ArrayList(); for (int i=0; i dried = new ArrayList(); for (int i=0; i