From 167e5296ca62b4dee335327f2f3261fca7473c3d Mon Sep 17 00:00:00 2001
From: Mail LADJALI <mail.ladjali.etu@univ-lille.fr>
Date: Mon, 5 May 2025 14:35:49 +0200
Subject: [PATCH] tp07

---
 .DS_Store                                     | Bin 8196 -> 8196 bytes
 src/.DS_Store                                 | Bin 8196 -> 8196 bytes
 src/tp07/.DS_Store                            | Bin 0 -> 6148 bytes
 .../BidirectionalPhoneBookTest.java           | 189 ++++++++++++++++++
 src/tp07/tpOO-07-res/BreedingFarmTest.java    | 164 +++++++++++++++
 src/tp07/tpOO-07-res/DuckTest.java            |  56 ++++++
 src/tp07/tpOO-07-res/GooseTest.java           |  56 ++++++
 src/tp07/tpOO-07-res/HenTest.java             |  56 ++++++
 src/tp07/tpOO-07-res/ProPhoneNumberTest.java  |  73 +++++++
 .../tpOO-07-res/UniversityDepartment.java     |  16 ++
 src/tp07/tpOO-07-res/tp07-res.jar             | Bin 0 -> 4246 bytes
 11 files changed, 610 insertions(+)
 create mode 100644 src/tp07/.DS_Store
 create mode 100644 src/tp07/tpOO-07-res/BidirectionalPhoneBookTest.java
 create mode 100644 src/tp07/tpOO-07-res/BreedingFarmTest.java
 create mode 100644 src/tp07/tpOO-07-res/DuckTest.java
 create mode 100644 src/tp07/tpOO-07-res/GooseTest.java
 create mode 100644 src/tp07/tpOO-07-res/HenTest.java
 create mode 100644 src/tp07/tpOO-07-res/ProPhoneNumberTest.java
 create mode 100644 src/tp07/tpOO-07-res/UniversityDepartment.java
 create mode 100644 src/tp07/tpOO-07-res/tp07-res.jar

diff --git a/.DS_Store b/.DS_Store
index b34ff9fb7ab7bac80218603e75eb3e94dcaa52b3..ba74a64a02c66ace044f28447659e60b3738a64c 100644
GIT binary patch
delta 364
zcmZp1XmOa}&#BJ9z`)4BAiywrqOkDBnr`-q4T785IaoOAK{6~1dJO3dnG7X4>4w3{
z`MCuQVDND-0|NtGE;rxBB`GIAiGhKE!~DN%+V*3|98u*{@X8ltAeqe$wt$%-X|s^P
zMMft1pvi?oG9t)Uh}{*L*0JW8BUA!mHnIdiilGb%lNSoeZtfK-Ws+;jVqjokW+-MT
vVn{|dc441{{*q&p6+|W2piDbaNhT(R&5@#JOq<yyzOhVh6{#ghyD<|0t*T%r

delta 274
zcmZp1XmOa}FRaYKz`)4BAi$8HoRpKF#K6EHurYBd`(}0y77j+`%`F1g87KP-vrd*3
zl$=~C#KW;No3pxk%`wNxhC(uvSE38t6ylpKAt<+*Rk)OCvcE99V=+S!Lvn7uiwo3n
z4tJ%ER&mRYIWjOXFf%}9Q}D=6ju(;Id`DE9X<|XeW_F2hEWQkI05^at#+L#B#^gy|

diff --git a/src/.DS_Store b/src/.DS_Store
index 07b7d1bec1546013598ce9f2d89ad1661d54332f..f086cb122c11ee14147895d8d9f5e1404bf27b11 100644
GIT binary patch
delta 214
zcmZp1XmOa}&#1C7U^hRb%4Qw`7Zzp%2J^`u1kW*=PYw{2b~ew=cX3I|$xmWnVBqjs
za!T#u{bP;{3=Av`B@6`&1`Ou8`6+ni3o<4j6p~~#pDZ9Kx;a23f@w3m#5b17vxHP=
IWJ4$u0R7xNqyPW_

delta 42
ycmZp1XmOa}&nUMsU^hRb+-4pD7naTIMI)FtHpDY-W|#QJvN=X<HRHyH7)AgqBn}k-

diff --git a/src/tp07/.DS_Store b/src/tp07/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..fd14c3e0de183ddebdc748cd5541fab8614f699b
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8zOq>i@0Z1N%F(jFwA|RR(Y=$m_0fRY%E<+JRDpYQi
z8r&fOiaTzG5{3c>e+GXB<oGL2DlaZb%E?b+U|`suRFIQdTw-8wjgg6&g_Vt+gPnt$
zBQ`iAzdX1kv81%vDX}OT#0$yK&q;!@6O+O+Q_JH8M4a>UN)j{kQj0)Jf-_T6lM;(!
z!ZY(y^2?p_OY>5S!Fr(*9Go1S@dD!2)#fHT3Z^E;wK@vbmPQ6T3MOVIwY8iaqRRT#
zLGjr+xq11Wkg#QBgwPDUP#Q*cF)%RT@LXANQC?1dUOFf%z?6^DqaiRF0;3@?QbGV)
zY;tgq6c3O3b2J1-LxAWI0F@64&<2tNlx~2~ASnh$1_n^`5k#}V42ARq7(ikmtsokt
z6-0xyGBAQzU^Bp485kKLS{cFJ5Rg7lmjpzEwKFg>fVDF)GJv%+z}k9@5bX?%5bX?%
z&>jjSL^}f`L^}f`L_5rRqx5J9jD`R-1ehVT0I2?VWnjS7|A(j=B}YSGGz5la2r#m^
z1iLtaD`o8d1J$*l`ZNJ54XXV?)iEQeo<@j)t70a|fT9Fc7*ySZw1Q}GRm{i$smVth
P0<aJorAI@6{viMW-kM8#

literal 0
HcmV?d00001

diff --git a/src/tp07/tpOO-07-res/BidirectionalPhoneBookTest.java b/src/tp07/tpOO-07-res/BidirectionalPhoneBookTest.java
new file mode 100644
index 0000000..fc2aad5
--- /dev/null
+++ b/src/tp07/tpOO-07-res/BidirectionalPhoneBookTest.java
@@ -0,0 +1,189 @@
+package tpOO.tp07;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+public class BidirectionalPhoneBookTest {
+    public String s1, s2, s3;
+    public String name1, name2, name3;
+    public ProPhoneNumber ppn1, ppn2, ppn3, ppn4, ppn5;
+    public BidirectionalPhoneBook bpb1;
+
+    @BeforeEach
+    void initialization() {
+        s1 = "1234";
+        s2 = "1111";
+        s3 = "2222";
+        name1 = "alice";
+        name2 = "bruno";
+        name3 = "clément";
+        ppn1 = new ProPhoneNumber(s1, UniversityDepartment.IUT);
+        ppn2 = new ProPhoneNumber(s1, UniversityDepartment.FST);
+        ppn3 = new ProPhoneNumber(s2, UniversityDepartment.IUT);
+        ppn4 = new ProPhoneNumber(s1, UniversityDepartment.IUT);
+        ppn5 = new ProPhoneNumber(s3, UniversityDepartment.IUT);
+        bpb1 = new BidirectionalPhoneBook();
+    }
+
+    @Test
+    void testAdd() {
+        assertEquals(0, bpb1.getNbEntries());
+        assertTrue(bpb1.add(name1, UniversityDepartment.IUT, s1));
+        assertEquals(1, bpb1.getNbEntries());
+        assertFalse(bpb1.add(name1, UniversityDepartment.IUT, s1));
+        assertEquals(1, bpb1.getNbEntries());
+        assertFalse(bpb1.add(name2, UniversityDepartment.IUT, s1));
+        assertEquals(1, bpb1.getNbEntries());
+        assertFalse(bpb1.add(name1, UniversityDepartment.IUT, s2));
+        assertEquals(1, bpb1.getNbEntries());
+        assertTrue(bpb1.add(name2, UniversityDepartment.IUT, s2));
+        assertEquals(2, bpb1.getNbEntries());
+    }
+
+    @Test
+    void testAlreadyRegistered() {
+        assertEquals(0, bpb1.getNbEntries());
+        assertFalse(bpb1.alreadyRegistered(name1));
+        assertFalse(bpb1.alreadyRegistered(UniversityDepartment.IUT.getDiallingCode()+s1));
+        assertFalse(bpb1.alreadyRegistered(name2));
+        assertFalse(bpb1.alreadyRegistered(UniversityDepartment.IUT.getDiallingCode()+s2));
+        assertTrue(bpb1.add(name1, UniversityDepartment.IUT, s1));
+        assertEquals(1, bpb1.getNbEntries());
+        assertTrue(bpb1.alreadyRegistered(name1));
+        assertTrue(bpb1.alreadyRegistered(UniversityDepartment.IUT.getDiallingCode()+s1));
+        assertFalse(bpb1.alreadyRegistered(name2));
+        assertFalse(bpb1.alreadyRegistered(UniversityDepartment.IUT.getDiallingCode()+s2));
+        assertTrue(bpb1.add(name2, UniversityDepartment.IUT, s2));
+        assertEquals(2, bpb1.getNbEntries());
+        assertTrue(bpb1.alreadyRegistered(name1));
+        assertTrue(bpb1.alreadyRegistered(UniversityDepartment.IUT.getDiallingCode()+s1));
+        assertTrue(bpb1.alreadyRegistered(name2));
+        assertTrue(bpb1.alreadyRegistered(UniversityDepartment.IUT.getDiallingCode()+s2));
+    }
+
+    @Test
+    void testGetProPhoneNumberFromName() {
+        assertEquals(0, bpb1.getNbEntries());
+        assertNull(bpb1.getProPhoneNumberFromName(name1));
+        assertNull(bpb1.getProPhoneNumberFromName(name2));
+        assertTrue(bpb1.add(name1, UniversityDepartment.IUT, s1));
+        assertEquals(1, bpb1.getNbEntries());
+        assertEquals(ppn1, bpb1.getProPhoneNumberFromName(name1));
+        assertNull(bpb1.getProPhoneNumberFromName(name2));
+        assertTrue(bpb1.add(name2, UniversityDepartment.FST, s1));
+        assertEquals(2, bpb1.getNbEntries());
+        assertEquals(ppn1, bpb1.getProPhoneNumberFromName(name1));
+        assertEquals(ppn2, bpb1.getProPhoneNumberFromName(name2));
+    }
+
+    @Test
+    void testGetNameFromFiveDigits() {
+        assertEquals(0, bpb1.getNbEntries());
+        assertNull(bpb1.getNameFromFiveDigits(UniversityDepartment.IUT.getDiallingCode()+s1));
+        assertNull(bpb1.getNameFromFiveDigits(UniversityDepartment.FST.getDiallingCode()+s1));
+        assertTrue(bpb1.add(name1, UniversityDepartment.IUT, s1));
+        assertEquals(1, bpb1.getNbEntries());
+        assertEquals(name1, bpb1.getNameFromFiveDigits(UniversityDepartment.IUT.getDiallingCode()+s1));
+        assertNull(bpb1.getNameFromFiveDigits(UniversityDepartment.FST.getDiallingCode()+s1));
+        assertTrue(bpb1.add(name2, UniversityDepartment.FST, s1));
+        assertEquals(2, bpb1.getNbEntries());
+        assertEquals(name1, bpb1.getNameFromFiveDigits(UniversityDepartment.IUT.getDiallingCode()+s1));
+        assertEquals(name2, bpb1.getNameFromFiveDigits(UniversityDepartment.FST.getDiallingCode()+s1));
+    }
+
+    @Test
+    void testListing() {
+        String resultIUT = UniversityDepartment.IUT.getLabelLong() + System.getProperty("line.separator");
+        String resultFST = UniversityDepartment.FST.getLabelLong() + System.getProperty("line.separator");
+        String resultFH = UniversityDepartment.FH.getLabelLong() + System.getProperty("line.separator");
+        assertEquals(0, bpb1.getNbEntries());
+        assertEquals(resultIUT, bpb1.listing(UniversityDepartment.IUT));
+        assertEquals(resultFST, bpb1.listing(UniversityDepartment.FST));
+        assertEquals(resultFH, bpb1.listing(UniversityDepartment.FH));
+        assertTrue(bpb1.add(name1, UniversityDepartment.IUT, s1));
+        resultIUT += name1 + ":" + ppn1.internToString() + System.getProperty("line.separator");
+        assertEquals(1, bpb1.getNbEntries());
+        assertEquals(resultIUT, bpb1.listing(UniversityDepartment.IUT));
+        assertEquals(resultFST, bpb1.listing(UniversityDepartment.FST));
+        assertEquals(resultFH, bpb1.listing(UniversityDepartment.FH));
+        assertTrue(bpb1.add(name2, UniversityDepartment.FST, s1));
+        resultFST += name2 + ":" + ppn2.internToString() + System.getProperty("line.separator");
+        assertEquals(2, bpb1.getNbEntries());
+        assertEquals(resultIUT, bpb1.listing(UniversityDepartment.IUT));
+        assertEquals(resultFST, bpb1.listing(UniversityDepartment.FST));
+        assertEquals(resultFH, bpb1.listing(UniversityDepartment.FH));
+        assertTrue(bpb1.add(name3, UniversityDepartment.IUT, s3));
+        resultIUT = UniversityDepartment.IUT.getLabelLong() + System.getProperty("line.separator")+ name3 + ":" + ppn5.internToString() + System.getProperty("line.separator") + name1 + ":" + ppn1.internToString() + System.getProperty("line.separator");
+        assertEquals(3, bpb1.getNbEntries());
+        assertEquals(resultIUT, bpb1.listing(UniversityDepartment.IUT));
+        assertEquals(resultFST, bpb1.listing(UniversityDepartment.FST));
+        assertEquals(resultFH, bpb1.listing(UniversityDepartment.FH));
+    }
+
+    @Test
+    void testListing2() {
+        // empty listing
+        String result = "";
+        for(int i=0; i<UniversityDepartment.values().length; i++) {
+            UniversityDepartment ud = UniversityDepartment.values()[i];
+            result += ud.getLabelLong() + System.getProperty("line.separator");
+        }
+        assertEquals(0, bpb1.getNbEntries());
+        assertEquals(result, bpb1.listing());
+        // first addition (IUT)
+        assertTrue(bpb1.add(name1, UniversityDepartment.IUT, s1));
+        {result = "";
+        for(int i=0; i<UniversityDepartment.IUT.ordinal(); i++) {
+            UniversityDepartment ud = UniversityDepartment.values()[i];
+            result += ud.getLabelLong() + System.getProperty("line.separator");
+        }
+        result += UniversityDepartment.IUT.getLabelLong() + System.getProperty("line.separator");
+        result += name1 + ":" + ppn1.internToString() + System.getProperty("line.separator");
+        for(int i=UniversityDepartment.IUT.ordinal()+1; i<UniversityDepartment.values().length; i++) {
+            UniversityDepartment ud = UniversityDepartment.values()[i];
+            result += ud.getLabelLong() + System.getProperty("line.separator");
+        }}
+        assertEquals(1, bpb1.getNbEntries());
+        assertEquals(result, bpb1.listing());
+        // second addition (FST)
+        assertTrue(bpb1.add(name2, UniversityDepartment.FST, s1));
+        {result = "";
+        for(int i=0; i<UniversityDepartment.FST.ordinal(); i++) {
+            UniversityDepartment ud = UniversityDepartment.values()[i];
+            result += ud.getLabelLong() + System.getProperty("line.separator");
+        }
+        result += UniversityDepartment.FST.getLabelLong() + System.getProperty("line.separator");
+        result += name2 + ":" + ppn2.internToString() + System.getProperty("line.separator");
+        result += UniversityDepartment.IUT.getLabelLong() + System.getProperty("line.separator");
+        result += name1 + ":" + ppn1.internToString() + System.getProperty("line.separator");
+        for(int i=UniversityDepartment.IUT.ordinal()+1; i<UniversityDepartment.values().length; i++) {
+            UniversityDepartment ud = UniversityDepartment.values()[i];
+            result += ud.getLabelLong() + System.getProperty("line.separator");
+        }}
+        assertEquals(2, bpb1.getNbEntries());
+        assertEquals(result, bpb1.listing());
+        // third addition (IUT)
+        assertTrue(bpb1.add(name3, UniversityDepartment.IUT, s3));
+        {result = "";
+        for(int i=0; i<UniversityDepartment.FST.ordinal(); i++) {
+            UniversityDepartment ud = UniversityDepartment.values()[i];
+            result += ud.getLabelLong() + System.getProperty("line.separator");
+        }
+        result += UniversityDepartment.FST.getLabelLong() + System.getProperty("line.separator");
+        result += name2 + ":" + ppn2.internToString() + System.getProperty("line.separator");
+        result += UniversityDepartment.IUT.getLabelLong() + System.getProperty("line.separator");
+        result += name3 + ":" + ppn5.internToString() + System.getProperty("line.separator");
+        result += name1 + ":" + ppn1.internToString() + System.getProperty("line.separator");
+        for(int i=UniversityDepartment.IUT.ordinal()+1; i<UniversityDepartment.values().length; i++) {
+            UniversityDepartment ud = UniversityDepartment.values()[i];
+            result += ud.getLabelLong() + System.getProperty("line.separator");
+        }}
+        assertEquals(3, bpb1.getNbEntries());
+        assertEquals(result, bpb1.listing());
+    }
+}
diff --git a/src/tp07/tpOO-07-res/BreedingFarmTest.java b/src/tp07/tpOO-07-res/BreedingFarmTest.java
new file mode 100644
index 0000000..49f8df8
--- /dev/null
+++ b/src/tp07/tpOO-07-res/BreedingFarmTest.java
@@ -0,0 +1,164 @@
+package tpOO.tp07;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+public class BreedingFarmTest {
+    int id1, id2, id3, id4, id5, id6, size1;
+    double w1, w2, w3;
+    Duck d1, d2;
+    Hen h1, h2;
+    Goose g1, g2;
+    BreedingFarm bf1, bf2;
+
+    @BeforeEach
+    void testInitialization() {
+        id1=1; id2=2; id3=10; id4=20; id5=100; id6=200;
+        size1=3;
+        w1=3.0; w2=6.0; w3=15.0;
+        d1 = new Duck(id1, w1);
+        d2 = new Duck(id2, w2);
+        h1 = new Hen(id3, w1);
+        h2 = new Hen(id4, w2);
+        g1 = new Goose(id5, w2);
+        g2 = new Goose(id6, w3);
+        bf1 = new BreedingFarm(size1);
+        bf2 = new BreedingFarm();
+    }
+
+    @Test
+    void testAdd() {
+        // bf1 --> élevage taille max = size1
+        // bf2 --> élevage taille max par défaut
+        assertEquals(0, bf1.getFarmSize());
+        assertEquals(0, bf2.getFarmSize());
+        bf1.add(d1); bf2.add(d1);
+        assertEquals(1, bf1.getFarmSize());
+        assertEquals(1, bf2.getFarmSize());
+        bf1.add(h1); bf2.add(h1);
+        assertEquals(2, bf1.getFarmSize());
+        assertEquals(2, bf2.getFarmSize());
+        bf1.add(g1); bf2.add(g1);
+        assertEquals(3, bf1.getFarmSize());
+        assertEquals(3, bf2.getFarmSize());
+        bf1.add(d2); bf2.add(d2);
+        assertEquals(3, bf1.getFarmSize());
+        assertEquals(4, bf2.getFarmSize());
+    }
+
+    @Test
+    void testGetNbDuck() {
+        assertEquals(0, bf1.getNbDuck());
+        bf1.add(d1);
+        assertEquals(1, bf1.getFarmSize());
+        assertEquals(1, bf1.getNbDuck());
+        bf1.add(h1);
+        assertEquals(2, bf1.getFarmSize());
+        assertEquals(1, bf1.getNbDuck());
+        bf1.add(d2);
+        assertEquals(3, bf1.getFarmSize());
+        assertEquals(2, bf1.getNbDuck());
+    }
+
+    @Test
+    void testSearch() {
+        bf1.add(d1); bf1.add(h1); bf1.add(g1);
+        assertEquals(3, bf1.getFarmSize());
+        assertSame(d1, bf1.search(id1));
+        assertNull(bf1.search(id2));
+        assertSame(h1, bf1.search(id3));
+        assertNull(bf1.search(id4));
+        assertSame(g1, bf1.search(id5));
+        assertNull(bf1.search(id6));
+    }
+
+    @Test
+    void testGetDuck() {
+        bf1.add(d1); bf1.add(h1); bf1.add(d2);
+        assertEquals(3, bf1.getFarmSize());
+        assertEquals(2, bf1.getNbDuck());
+        assertSame(d1, bf1.getDuck(1));
+        assertSame(d2, bf1.getDuck(2));
+        assertNull(bf1.getDuck(3));
+    }
+
+    @Test
+    void testUpdateWeight() {
+        bf1.add(d1); bf1.add(h1); bf1.add(g1);
+        assertEquals(3, bf1.getFarmSize());
+        assertEquals(w1, d1.getWeight());
+        bf1.updateWeight(id1, w2);
+        assertEquals(w2, d1.getWeight());
+    }
+
+    @Test
+    void testIsFatEnough() {
+        assertFalse(d1.isFatEnough());
+        assertTrue(d2.isFatEnough());
+        assertFalse(h1.isFatEnough());
+        assertTrue(h2.isFatEnough());
+        assertFalse(g1.isFatEnough());
+        assertTrue(g2.isFatEnough());
+    }
+
+    @Test
+    void testPotentialProfit() {
+        double profit = 0.0;
+        assertEquals(0, bf2.getFarmSize());
+        assertEquals(profit, bf2.potentialProfit());
+        bf2.add(d1); // too thin
+        assertEquals(1, bf2.getFarmSize());
+        assertEquals(profit, bf2.potentialProfit());
+        bf2.add(d2); // can be slaughtered
+        profit += d2.getWeight() * d2.getPriceKg();
+        assertEquals(2, bf2.getFarmSize());
+        assertEquals(profit, bf2.potentialProfit());
+        bf2.add(h1); // too thin
+        assertEquals(3, bf2.getFarmSize());
+        assertEquals(profit, bf2.potentialProfit());
+        bf2.add(h2); // can be slaughtered
+        profit += h2.getWeight() * h2.getPriceKg();
+        assertEquals(4, bf2.getFarmSize());
+        assertEquals(profit, bf2.potentialProfit());
+        bf2.add(g1); // too thin
+        assertEquals(5, bf2.getFarmSize());
+        assertEquals(profit, bf2.potentialProfit());
+        bf2.add(g2); // can be slaughtered
+        profit += g2.getWeight() * g2.getPriceKg();
+        assertEquals(6, bf2.getFarmSize());
+        assertEquals(profit, bf2.potentialProfit());
+    }
+
+    @Test
+    void testSlaughtering() {
+        List<Poultry> toSlaughter = new ArrayList<Poultry>();
+        bf2.add(d1); bf2.add(h1);
+        assertEquals(2, bf2.getFarmSize());
+        toSlaughter = bf2.slaughtering();
+        assertEquals(2, bf2.getFarmSize());
+        assertEquals(0, toSlaughter.size());
+        bf2.add(d2);
+        assertEquals(3, bf2.getFarmSize());
+        toSlaughter = bf2.slaughtering();
+        assertEquals(2, bf2.getFarmSize());
+        assertEquals(1, toSlaughter.size());
+        assertEquals(d2, toSlaughter.get(0));
+        bf2.add(d2); bf2.add(h2);
+        assertEquals(4, bf2.getFarmSize());
+        toSlaughter = bf2.slaughtering();
+        assertEquals(2, bf2.getFarmSize());
+        assertEquals(2, toSlaughter.size());
+        assertEquals(d2, toSlaughter.get(0));
+        assertEquals(h2, toSlaughter.get(1));
+    }
+
+}
diff --git a/src/tp07/tpOO-07-res/DuckTest.java b/src/tp07/tpOO-07-res/DuckTest.java
new file mode 100644
index 0000000..4b8dbb1
--- /dev/null
+++ b/src/tp07/tpOO-07-res/DuckTest.java
@@ -0,0 +1,56 @@
+package tpOO.tp07;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+public class DuckTest {
+    public int id1, id2, id3;
+    public double w1, w2, w3;
+    public Duck d1, d2, d3;
+
+    @BeforeEach
+    void testInitialization() {
+        id1=10; id2=20; id3=30;
+        w1=1.0; w2=2.0; w3=3.0;
+        d1 = new Duck(id1, w1);
+        d2 = new Duck(id2, w2);
+        d3 = new Duck(id3, w3);
+    }
+
+    @Test
+    void testGetIdentity() {
+        assertEquals(id1, d1.getIdentity());
+        assertEquals(id2, d2.getIdentity());
+        assertEquals(id3, d3.getIdentity());
+    }
+
+    @Test
+    void testSetIdentity() {
+        assertEquals(id1, d1.getIdentity());
+        d1.setIdentity(id2);
+        assertEquals(id2, d1.getIdentity());
+    }
+
+    @Test
+    void testGetWeight() {
+        assertEquals(w1, d1.getWeight());
+        assertEquals(w2, d2.getWeight());
+        assertEquals(w3, d3.getWeight());
+    }
+
+    @Test
+    void testSetWeight() {
+        assertEquals(w1, d1.getWeight());
+        d1.setWeight(w2);
+        assertEquals(w2, d1.getWeight());
+    }
+
+    @Test
+    void testGetPrice() {
+        assertEquals(w1*d1.getPriceKg(), d1.getPrice());
+        assertEquals(w2*d2.getPriceKg(), d2.getPrice());
+        assertEquals(w3*d3.getPriceKg(), d3.getPrice());
+    }
+}
diff --git a/src/tp07/tpOO-07-res/GooseTest.java b/src/tp07/tpOO-07-res/GooseTest.java
new file mode 100644
index 0000000..1ee4b04
--- /dev/null
+++ b/src/tp07/tpOO-07-res/GooseTest.java
@@ -0,0 +1,56 @@
+package tpOO.tp07;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+public class GooseTest {
+    public int id1, id2, id3;
+    public double w1, w2, w3;
+    public Goose g1, g2, g3;
+
+    @BeforeEach
+    void testInitialization() {
+        id1=10; id2=20; id3=30;
+        w1=1.0; w2=2.0; w3=3.0;
+        g1 = new Goose(id1, w1);
+        g2 = new Goose(id2, w2);
+        g3 = new Goose(id3, w3);
+    }
+
+    @Test
+    void testGetIdentity() {
+        assertEquals(id1, g1.getIdentity());
+        assertEquals(id2, g2.getIdentity());
+        assertEquals(id3, g3.getIdentity());
+    }
+
+    @Test
+    void testSetIdentity() {
+        assertEquals(id1, g1.getIdentity());
+        g1.setIdentity(id2);
+        assertEquals(id2, g1.getIdentity());
+    }
+
+    @Test
+    void testGetWeight() {
+        assertEquals(w1, g1.getWeight());
+        assertEquals(w2, g2.getWeight());
+        assertEquals(w3, g3.getWeight());
+    }
+
+    @Test
+    void testSetWeight() {
+        assertEquals(w1, g1.getWeight());
+        g1.setWeight(w2);
+        assertEquals(w2, g1.getWeight());
+    }
+
+    @Test
+    void testGetPrice() {
+        assertEquals(w1*g1.getPriceKg(), g1.getPrice());
+        assertEquals(w2*g2.getPriceKg(), g2.getPrice());
+        assertEquals(w3*g3.getPriceKg(), g3.getPrice());
+    }
+}
diff --git a/src/tp07/tpOO-07-res/HenTest.java b/src/tp07/tpOO-07-res/HenTest.java
new file mode 100644
index 0000000..29d883c
--- /dev/null
+++ b/src/tp07/tpOO-07-res/HenTest.java
@@ -0,0 +1,56 @@
+package tpOO.tp07;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+public class HenTest {
+    public int id1, id2, id3;
+    public double w1, w2, w3;
+    public Hen h1, h2, h3;
+
+    @BeforeEach
+    void testInitialization() {
+        id1=10; id2=20; id3=30;
+        w1=1.0; w2=2.0; w3=3.0;
+        h1 = new Hen(id1, w1);
+        h2 = new Hen(id2, w2);
+        h3 = new Hen(id3, w3);
+    }
+
+    @Test
+    void testGetIdentity() {
+        assertEquals(id1, h1.getIdentity());
+        assertEquals(id2, h2.getIdentity());
+        assertEquals(id3, h3.getIdentity());
+    }
+
+    @Test
+    void testSetIdentity() {
+        assertEquals(id1, h1.getIdentity());
+        h1.setIdentity(id2);
+        assertEquals(id2, h1.getIdentity());
+    }
+
+    @Test
+    void testGetWeight() {
+        assertEquals(w1, h1.getWeight());
+        assertEquals(w2, h2.getWeight());
+        assertEquals(w3, h3.getWeight());
+    }
+
+    @Test
+    void testSetWeight() {
+        assertEquals(w1, h1.getWeight());
+        h1.setWeight(w2);
+        assertEquals(w2, h1.getWeight());
+    }
+
+    @Test
+    void testGetPrice() {
+        assertEquals(w1*h1.getPriceKg(), h1.getPrice());
+        assertEquals(w2*h2.getPriceKg(), h2.getPrice());
+        assertEquals(w3*h3.getPriceKg(), h3.getPrice());
+    }
+}
diff --git a/src/tp07/tpOO-07-res/ProPhoneNumberTest.java b/src/tp07/tpOO-07-res/ProPhoneNumberTest.java
new file mode 100644
index 0000000..18bc73c
--- /dev/null
+++ b/src/tp07/tpOO-07-res/ProPhoneNumberTest.java
@@ -0,0 +1,73 @@
+package tpOO.tp07;
+
+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 org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+public class ProPhoneNumberTest {
+    public String s1, s2;
+    public ProPhoneNumber un, deux, trois, quatre;
+
+    @BeforeEach
+    void initialization() {
+        s1 = "1234";
+        s2 = "1111";
+        un = new ProPhoneNumber(s1, UniversityDepartment.IUT);
+        deux = new ProPhoneNumber(s1, UniversityDepartment.FST);
+        trois = new ProPhoneNumber(s2, UniversityDepartment.IUT);
+        quatre = new ProPhoneNumber(s1, UniversityDepartment.IUT);
+    }
+
+    @Test
+    void testEquals() {
+        assertTrue(un.equals(un));
+        assertFalse(un.equals(deux));
+        assertFalse(un.equals(trois));
+        assertTrue(un.equals(quatre));
+        assertFalse(deux.equals(trois));
+        assertFalse(deux.equals(quatre));
+    }
+
+    @Test
+    void testEquals2() {
+        assertTrue(un.equals(s1));
+        assertFalse(un.equals(s2));
+        assertTrue(deux.equals(s1));
+        assertFalse(deux.equals(s2));
+    }
+
+    @Test
+    void testInternToString() {
+        String res = "31234(" + UniversityDepartment.IUT.getLabelShort() + ")";
+        assertEquals(res, un.internToString());
+        res = "21234(" + UniversityDepartment.FST.getLabelShort() + ")";
+        assertEquals(res, deux.internToString());
+        res = "31111(" + UniversityDepartment.IUT.getLabelShort() + ")";
+        assertEquals(res, trois.internToString());
+        res = "31234(" + UniversityDepartment.IUT.getLabelShort() + ")";
+        assertEquals(res, quatre.internToString());
+    }
+
+    @Test
+    void testExternToString() {
+        String res = "+33.3.20.03.12.34 (" + UniversityDepartment.IUT.getLabelLong() + ")";
+        assertEquals(res, un.externToString());
+        res = "+33.3.20.02.12.34 (" + UniversityDepartment.FST.getLabelLong() + ")";
+        assertEquals(res, deux.externToString());
+        res = "+33.3.20.03.11.11 (" + UniversityDepartment.IUT.getLabelLong() + ")";
+        assertEquals(res, trois.externToString());
+        res = "+33.3.20.03.12.34 (" + UniversityDepartment.IUT.getLabelLong() + ")";
+        assertEquals(res, quatre.externToString());
+    }
+
+    @Test
+    void testGetDepartment() {
+        assertEquals(UniversityDepartment.IUT, un.getDepartment());
+        assertEquals(UniversityDepartment.FST, deux.getDepartment());
+        assertEquals(UniversityDepartment.IUT, trois.getDepartment());
+        assertEquals(UniversityDepartment.IUT, quatre.getDepartment());
+    }
+}
diff --git a/src/tp07/tpOO-07-res/UniversityDepartment.java b/src/tp07/tpOO-07-res/UniversityDepartment.java
new file mode 100644
index 0000000..ba3e636
--- /dev/null
+++ b/src/tp07/tpOO-07-res/UniversityDepartment.java
@@ -0,0 +1,16 @@
+package tp07; // à adapter éventuellement selon la structure de votre projet
+
+public enum UniversityDepartment {
+    F3S(1,"Faculté des Sciences de Santé et du Sport"),
+    FST(2,"Faculté des Sciences et Technologies"),
+    IUT(3,"Institut Universitaire de Technologies"),
+    FSJPS(4,"Faculté des Sciences Juridiques, Politiques et Sociales"),
+    FSEST(5,"Faculté des Sciences Économiques, Sociales et des Territoires"),
+    FH(6,"Faculté des Humanités"),
+    FLCS(7,"Faculté des Langues, Cultures et Sociétés"),
+    FPSEF(8,"Faculté de Psychologie, Sciences de l’Education et de la Formation");
+
+   public UniversityDepartment(int DialingCode, String LabelShort, String LabelLong){
+    
+   }
+}
diff --git a/src/tp07/tpOO-07-res/tp07-res.jar b/src/tp07/tpOO-07-res/tp07-res.jar
new file mode 100644
index 0000000000000000000000000000000000000000..6926c42ee68ba1e984e142fe33e8dd818aae5833
GIT binary patch
literal 4246
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
Q6d4p50@)cD^f^I10JOk}6aWAK

literal 0
HcmV?d00001

-- 
GitLab