diff --git a/src/tpOO/tp08/BreedingGrounds.java b/src/tpOO/tp08/BreedingGrounds.java new file mode 100644 index 0000000000000000000000000000000000000000..3beedcd379d2a65021da48428d14ca14261eaf4b --- /dev/null +++ b/src/tpOO/tp08/BreedingGrounds.java @@ -0,0 +1,5 @@ +package tpOO.tp08; + +public git add { + +} diff --git a/src/tpOO/tp08/Participant.java b/src/tpOO/tp08/Participant.java new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/test/tpOO/tp08/BreedingGroundTest.java b/test/tpOO/tp08/BreedingGroundTest.java new file mode 100755 index 0000000000000000000000000000000000000000..7c4ab87d94fc2c71f8c8640481f2bc167995166b --- /dev/null +++ b/test/tpOO/tp08/BreedingGroundTest.java @@ -0,0 +1,139 @@ +package tpOO.tp08; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class BreedingGroundTest { + public Participant p1,p2,p3,p4,p5,p6,p7,p8,p9,p10; + public BreedingGround v1,v2,v3; + public List<Participant> partList; + public Set<Participant> partSet; + + @BeforeEach + public void initTest() { + partList = new ArrayList<Participant>(); + partSet = new HashSet<Participant>(); + + p1 = new Participant("alice"); + p2 = new Participant("bruno"); // the cheater registered in v1 and v3 + p3 = new Participant("clement"); + p4 = new Participant("dominique"); + p5 = new Participant("elia"); + p6 = new Participant("flore"); + p7 = new Participant("gudul"); + p8 = new Participant("hercule"); + p9 = new Participant("isidor"); + p10 = new Participant("jules"); + // appariement des participants + p1.matchWith(p2); + p5.matchWith(p6); + p8.matchWith(p9); + + v1 = new BreedingGround(); + v1.registration(p1); + v1.registration(p2); + v1.registration(p3); + v1.registration(p4); + v2 = new BreedingGround(); + v2.registration(p5); + v2.registration(p6); + v3 = new BreedingGround(); + v3.registration(p8); + v3.registration(p9); + v3.registration(p10); + v3.registration(p2); + } + + @Test + public void testRegistration() { + assertEquals(4, v1.getApplicants().size()); + assertTrue(v1.getApplicants().contains(p1) && v1.getApplicants().contains(p2) + && v1.getApplicants().contains(p3) && v1.getApplicants().contains(p4)); + v1.clear(); + assertEquals(Collections.emptySet(), v1.getApplicants()); + assertTrue(v1.registration(p1)); + assertEquals(1, v1.getApplicants().size()); + assertTrue(v1.getApplicants().contains(p1)); + assertFalse(v1.registration(p1)); + } + @Test + public void testLoners() { + assertEquals(0, v2.loners().size()); + assertEquals(Collections.emptyList(), v2.loners()); + partList = v1.loners(); + assertEquals(2, partList.size()); + assertTrue(partList.contains(p3) && partList.contains(p4)); + } + @Test + public void testLonersCleansing() { + v1.lonersCleansing(); + assertEquals(2, v1.getApplicants().size()); + assertTrue(v1.getApplicants().contains(p1) && v1.getApplicants().contains(p2)); + v2.lonersCleansing(); + assertEquals(2, v2.getApplicants().size()); + assertTrue(v2.getApplicants().contains(p5) && v2.getApplicants().contains(p6)); + } + @Test + public void testCheaters() { + assertEquals(Collections.emptyList(), v1.cheaters(v2)); + partList.add(p2); + assertEquals(partList, v1.cheaters(v3)); + } + @Test + public void testCheatersBan() { + assertTrue(p1.isMatchedWith(p2)); + assertTrue(p2.isMatchedWith(p1)); + v1.isolateCheater(p2); + assertFalse(p1.isMatchedWith(p2)); + assertFalse(p2.isMatchedWith(p1)); + } + @Test + public void testCheatersCleansing() { + partSet = v1.getApplicants(); + v1.cheatersCleansing(v2); + assertEquals(partSet, v1.getApplicants()); + partSet.clear(); + partSet.add(p1); partSet.add(p3); partSet.add(p4); + v1.cheatersCleansing(v3); + assertEquals(partSet, v1.getApplicants()); + } + @Test + public void testPossibleMerging() { + assertFalse(v1.possibleMerging(v1)); + assertTrue(v1.possibleMerging(v2)); + assertFalse(v1.possibleMerging(v3)); + } + @Test + public void testMerge() { + partSet = v1.getApplicants(); + partSet.addAll(v2.getApplicants()); + v1.merging(v2); + assertEquals(partSet, v1.getApplicants()); + partSet.clear(); + partSet.addAll(v1.getApplicants()); + partSet.addAll(v2.getApplicants()); + partSet.addAll(v3.getApplicants()); + v1.merging(v3); + assertEquals(partSet, v1.getApplicants()); + } + @Test + public void testSecuredMerging() { + partSet = v1.getApplicants(); + partSet.add(p8); partSet.add(p9); partSet.add(p10); + v1.securedMerging(v3); + assertEquals(partSet, v1.getApplicants()); + partSet.addAll(v2.getApplicants()); + v1.securedMerging(v2); + assertEquals(partSet, v1.getApplicants()); + } +} diff --git a/test/tpOO/tp08/ShopTest.java b/test/tpOO/tp08/ShopTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f86d050b0a41366600962bb41ea19ae7dbf0e2df --- /dev/null +++ b/test/tpOO/tp08/ShopTest.java @@ -0,0 +1,77 @@ +package tpOO.tp08; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; + +import java.time.LocalDate; +import java.util.ArrayList; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class ShopTest { + public IProduct p1, p2, p3, p4, p5; + public ArrayList<IProduct> aStock; + public Shelf e1, e2, e3, e4; + public ArrayList<Shelf> shelves; + public Shop m; + + @BeforeEach + public void initialization() { + this.p1 = new Food("pasta", 3.25, LocalDate.of(2019, 1, 1)); + this.p2 = new Furniture("chair", 50.0); + this.p3 = new Furniture("table", 100.0); + this.p4 = new Food("fish", 10.0); + this.p5 = new Food("meat", 15.0, LocalDate.of(2019, 1, 1)); + this.aStock = new ArrayList<IProduct>(); + this.aStock.add(p1); this.aStock.add(p2); this.aStock.add(p3); this.aStock.add(p4); this.aStock.add(p5); + + this.e1 = new Shelf(false, 1); + this.e2 = new Shelf(false, 2); + this.e3 = new Shelf(true, 2); + this.e4 = new Shelf(true, 2); + this.shelves = new ArrayList<Shelf>(); + this.shelves.add(e1); this.shelves.add(e2); this.shelves.add(e3); this.shelves.add(e4); + + this.m = new Shop(shelves); + } + + @Test + public void initTest() { + ArrayList<Shelf> tmp = m.getShelving(); + assertEquals(4, tmp.size()); + assertTrue(tmp.get(0).isEmpty()); + assertFalse(tmp.get(0).isRefrigerated()); + assertTrue(tmp.get(1).isEmpty()); + assertFalse(tmp.get(1).isRefrigerated()); + assertTrue(tmp.get(2).isEmpty()); + assertTrue(tmp.get(2).isRefrigerated()); + assertTrue(tmp.get(3).isEmpty()); + assertTrue(tmp.get(3).isRefrigerated()); + } + @Test + public void tidyTest() { + ArrayList<Shelf> tmp = m.getShelving(); + m.tidy(this.aStock); + assertTrue(tmp.get(0).isFull()); + assertEquals(this.p2, tmp.get(0).getShelves().get(0)); + assertFalse(tmp.get(1).isFull()); + assertFalse(tmp.get(1).isEmpty()); + assertEquals(this.p3, tmp.get(1).getShelves().get(0)); + assertTrue(tmp.get(2).isFull()); + assertEquals(this.p1, tmp.get(2).getShelves().get(0)); + assertEquals(this.p4, tmp.get(2).getShelves().get(1)); + assertFalse(tmp.get(3).isFull()); + assertFalse(tmp.get(3).isEmpty()); + assertEquals(this.p5, tmp.get(3).getShelves().get(0)); + } + @Test + public void closeBeforeDateTest() { + m.tidy(this.aStock); + ArrayList<IProduct> res = m.closeBestBeforeDate(-3); + assertEquals(2, res.size()); + assertEquals(this.p1, res.get(0)); + assertEquals(this.p5, res.get(1)); + } +}