From 4998bff3f8c929ecfcdcd216f9b266abe3127244 Mon Sep 17 00:00:00 2001 From: JunkJumper Date: Sun, 24 May 2020 16:16:19 +0200 Subject: [PATCH] TD2 ex 2 ok --- .../EnsembleEntierBorne.java | 101 +++++++++--------- .../TestEnsembleEntierBorne.java | 6 +- .../EnsembleEntierBorneTest.java | 100 +++++++++++++++++ 3 files changed, 155 insertions(+), 52 deletions(-) create mode 100644 tests/TD2/ensembleEntierBorne/EnsembleEntierBorneTest.java diff --git a/src/TD2/ensembleEntierBorne/EnsembleEntierBorne.java b/src/TD2/ensembleEntierBorne/EnsembleEntierBorne.java index a318e35..900f5d2 100644 --- a/src/TD2/ensembleEntierBorne/EnsembleEntierBorne.java +++ b/src/TD2/ensembleEntierBorne/EnsembleEntierBorne.java @@ -2,70 +2,69 @@ package TD2.ensembleEntierBorne; public class EnsembleEntierBorne { - private final int MAXIMUM; - private boolean tab[]; + private final int MAXIMUM; + private boolean tab[]; - public EnsembleEntierBorne(int max) - { - MAXIMUM = max; - tab = new boolean[max+1]; - } + public EnsembleEntierBorne() { + this(0); + } + + public EnsembleEntierBorne(int max) { + this.MAXIMUM = max; + this.tab = new boolean[max + 1]; + for(int i = 0; i < this.getMAXIMUM(); i++) { + this.setTabI(false, i); + } + } - public void add(int elt) - { - this.tab[elt] = true; - } - - public void remove(int elt) - { - this.tab[elt] = false; - } + public void add(int elt) { + this.setTabI(true, elt); + } - public boolean doesContains(int elt) - { - if (this.tab[elt] == true) { - return true; - } else { - return false; - } - } + public void remove(int elt) { + this.setTabI(false, elt); + } - /*EnsembleEntierBorne intersect(EnsembleEntierBorne ens) - { - - }*/ + public boolean doesContains(int elt) { + return this.tab[elt]; + } + public EnsembleEntierBorne intersect(EnsembleEntierBorne ens) { + EnsembleEntierBorne e = new EnsembleEntierBorne(Math.max(this.getMAXIMUM(), ens.getMAXIMUM())); + + for(int i=0; i < Math.min(this.getMAXIMUM(), ens.getMAXIMUM()); i++) { + e.setTabI(this.doesContains(i) && ens.doesContains(i), i); + } + return e; + } + public int getMAXIMUM() { - return MAXIMUM; - } - + return this.MAXIMUM; + } public boolean[] getTab() { - return tab; - } - - public void setTab(boolean tab[]) { - this.tab = tab; + return this.tab; + } + + public void setTab(boolean[] b) { + this.tab = b; + } + + public void setTabI(boolean b, int i) { + this.tab[i] = b; } @Override public String toString() { - - String retour = "{"; - for (int i = 0; i < this.MAXIMUM; i++) - { - if (this.tab[i] == true) - { - retour += i+", "; - } - } - retour += "}"; - return retour; + String s = "{"; + + for (int i = 0; i < this.getMAXIMUM(); i++) { + if (doesContains(i)) { + s += i + ", "; + } + } + return s.substring(0, s.length()-2) + "}"; } - - - - } diff --git a/src/TD2/ensembleEntierBorne/TestEnsembleEntierBorne.java b/src/TD2/ensembleEntierBorne/TestEnsembleEntierBorne.java index ef2274f..deee60c 100644 --- a/src/TD2/ensembleEntierBorne/TestEnsembleEntierBorne.java +++ b/src/TD2/ensembleEntierBorne/TestEnsembleEntierBorne.java @@ -5,7 +5,7 @@ public class TestEnsembleEntierBorne { public static void main(String[] args) { EnsembleEntierBorne e1 = new EnsembleEntierBorne(20); EnsembleEntierBorne e2 = new EnsembleEntierBorne(11); - EnsembleEntierBorne e3 = new EnsembleEntierBorne(5); + EnsembleEntierBorne e3 = new EnsembleEntierBorne(10); e1.add(3); e1.add(5); @@ -35,12 +35,16 @@ public class TestEnsembleEntierBorne { e2.add(8); e3.add(5); + e3.add(8); e3.add(0); e3.add(3); System.out.println("e1 = " + e1.toString()); System.out.println("e2 = " + e2.toString()); System.out.println("e3 = " + e3.toString()); + + System.out.println(e3.intersect(e2)); + } } diff --git a/tests/TD2/ensembleEntierBorne/EnsembleEntierBorneTest.java b/tests/TD2/ensembleEntierBorne/EnsembleEntierBorneTest.java new file mode 100644 index 0000000..9526381 --- /dev/null +++ b/tests/TD2/ensembleEntierBorne/EnsembleEntierBorneTest.java @@ -0,0 +1,100 @@ +package TD2.ensembleEntierBorne; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.Test; + +public class EnsembleEntierBorneTest { + + private EnsembleEntierBorne e1 = new EnsembleEntierBorne(20); + private EnsembleEntierBorne e2 = new EnsembleEntierBorne(16); + private EnsembleEntierBorne e3 = new EnsembleEntierBorne(18); + + + @Test + public void testAdd() { + e1.add(3); + e1.add(5); + e1.add(9); + e1.add(14); + e1.add(18); + + assertTrue(e1.doesContains(3)); + assertTrue(e1.doesContains(5)); + assertTrue(e1.doesContains(9)); + assertTrue(e1.doesContains(14)); + assertTrue(e1.doesContains(18)); + } + + @Test + public void testRemove() { + + e2.add(1); + e2.add(2); + e2.add(3); + e2.add(4); + e2.add(5); + e2.add(6); + e2.add(7); + e2.add(8); + + assertTrue(e2.doesContains(1)); + assertTrue(e2.doesContains(2)); + assertTrue(e2.doesContains(3)); + assertTrue(e2.doesContains(4)); + assertTrue(e2.doesContains(5)); + assertTrue(e2.doesContains(6)); + assertTrue(e2.doesContains(7)); + assertTrue(e2.doesContains(8)); + + e2.remove(2); + e2.remove(5); + e2.remove(8); + + assertFalse(e2.doesContains(2)); + assertFalse(e2.doesContains(5)); + assertFalse(e2.doesContains(8)); + } + + @Test + public void testToString() { + e2.add(1); + e2.add(2); + e2.add(3); + e2.add(4); + e2.add(5); + e2.add(6); + e2.add(7); + e2.add(8); + + assertEquals("{1, 2, 3, 4, 5, 6, 7, 8}", e2.toString()); + } + + @Test + public void testIntersect() { + e1.add(3); + e1.add(5); + e1.add(9); + e1.add(14); + e1.add(18); + + e2.add(1); + e2.add(3); + e2.add(4); + e2.add(5); + e2.add(7); + e2.add(9); + e2.add(15); + + e3 = e1.intersect(e2); + + assertTrue(e3.doesContains(3)); + assertTrue(e3.doesContains(5)); + assertTrue(e3.doesContains(9)); + + + + } +}