From 0b33ac703dcabb67d5a6248dc62f698d249e35ff Mon Sep 17 00:00:00 2001 From: Minh VU Date: Fri, 25 Oct 2024 23:35:28 +0200 Subject: [PATCH] test v2 --- V2/ACO TD5 guide for students.pdf | Bin 0 -> 104549 bytes V2/snippet API V2.txt | 13 +++ V2/snippet PropertyManager implementation.txt | 60 ++++++++++ V2/snippet V2 PartTypeImpl.txt | 24 ++++ src/fr/api/Category.java | 5 - src/fr/api/CompatibilityChecker.java | 12 -- src/fr/api/CompatibilityManager.java | 26 ----- src/fr/api/Configuration.java | 13 +-- src/fr/api/Part.java | 8 ++ src/fr/api/PropertyManager.java | 42 +++++++ src/fr/impl/CompatibilityCheckerImpl.java | 17 +-- src/fr/impl/CompatibilityManagerImpl.java | 94 +++------------- src/fr/impl/ConfigurationImpl.java | 3 +- src/fr/impl/PartImpl.java | 37 +++++++ src/fr/impl/PartTypeImpl.java | 3 + src/fr/test/test.java | 104 +++--------------- 16 files changed, 230 insertions(+), 231 deletions(-) create mode 100644 V2/ACO TD5 guide for students.pdf create mode 100644 V2/snippet API V2.txt create mode 100644 V2/snippet PropertyManager implementation.txt create mode 100644 V2/snippet V2 PartTypeImpl.txt create mode 100644 src/fr/api/Part.java create mode 100644 src/fr/api/PropertyManager.java create mode 100644 src/fr/impl/PartImpl.java diff --git a/V2/ACO TD5 guide for students.pdf b/V2/ACO TD5 guide for students.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4b486bce7f70fdd791e260c216efa335bfa12ee4 GIT binary patch literal 104549 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 literal 0 HcmV?d00001 diff --git a/V2/snippet API V2.txt b/V2/snippet API V2.txt new file mode 100644 index 0000000..463df08 --- /dev/null +++ b/V2/snippet API V2.txt @@ -0,0 +1,13 @@ +/* + * Changes to the V1 API + */ +public Set getSelectedParts(); +public Optional getSelectionForCategory(Category category); +and for Part.java : +public interface Part extends PropertyManager { + default String getName() { + return this.getClass().getTypeName(); + }; + Category getCategory(); + PartType getType(); +} diff --git a/V2/snippet PropertyManager implementation.txt b/V2/snippet PropertyManager implementation.txt new file mode 100644 index 0000000..9e2c7f2 --- /dev/null +++ b/V2/snippet PropertyManager implementation.txt @@ -0,0 +1,60 @@ +/* + * Snippet to add a basic implementation of PropertyManager + */ +public class PartImpl implements Part { + + private PartType type; + + private class Property { + public final Supplier getter; + public final Consumer setter; + public final Set possibleValues; + + Property(Supplier getter, Consumer setter, Set possibleValues) { + this.getter = getter; + this.setter = setter; + this.possibleValues = possibleValues; + + } + } + + private Map properties = new HashMap<>(); + + protected void addProperty(String name, Supplier getter, Consumer setter, + Set possibleValues) { + properties.put(name, new Property(getter, setter, possibleValues)); + } + + @Override + public Set getPropertyNames() { + return Collections.unmodifiableSet(properties.keySet()); + } + + @Override + public Optional getProperty(String propertyName) { + Objects.requireNonNull(propertyName); + + if (properties.containsKey(propertyName)) { + return Optional.of(properties.get(propertyName).getter.get()); + } + return Optional.empty(); + } + + @Override + public void setProperty(String propertyName, String propertyValue) { + Objects.requireNonNull(propertyName); + Objects.requireNonNull(propertyValue); + + if ((properties.containsKey(propertyName)) && (properties.get(propertyName).setter != null)) { + properties.get(propertyName).setter.accept(propertyValue); + } else { + throw new IllegalArgumentException("bad property name or value: " + propertyName); + } + } + @Override + public Set getAvailablePropertyValues(String propertyName) { + if (properties.containsKey(propertyName)) { + return Collections.unmodifiableSet(properties.get(propertyName).possibleValues); + } + return Collections.emptySet(); + } diff --git a/V2/snippet V2 PartTypeImpl.txt b/V2/snippet V2 PartTypeImpl.txt new file mode 100644 index 0000000..20565a4 --- /dev/null +++ b/V2/snippet V2 PartTypeImpl.txt @@ -0,0 +1,24 @@ +/* + * Snippet to add to your PartTypeImpl to support + * the V2 API + */ +public class PartTypeImpl implements PartType { + private String name; + private Class classRef; + private Category category; + public PartTypeImpl(String name, Class classRef, Category category) { + this.name = name; + this.classRef = classRef; + this.category = category; + } +public PartImpl newInstance() { + Constructor constructor; + try { + constructor = classRef.getConstructor(); + return constructor.newInstance(); + } catch (Exception e) { + Logger.getGlobal().log(Level.SEVERE, "constructor call failed", e); + System.exit(-1); + } + return null; + } diff --git a/src/fr/api/Category.java b/src/fr/api/Category.java index a0823bd..2eebb34 100644 --- a/src/fr/api/Category.java +++ b/src/fr/api/Category.java @@ -5,10 +5,5 @@ package src.fr.api; * A public type to organize part types in categories */ public interface Category { - - /* - * return the name of the cathegory - * @return String, name of the cathegory, non null - */ String getName(); } \ No newline at end of file diff --git a/src/fr/api/CompatibilityChecker.java b/src/fr/api/CompatibilityChecker.java index 03869db..99a6ca7 100644 --- a/src/fr/api/CompatibilityChecker.java +++ b/src/fr/api/CompatibilityChecker.java @@ -1,18 +1,6 @@ package src.fr.api; import java.util.Set; public interface CompatibilityChecker { - - /* - * return the list of the incompatibles PartType of a PartType - * @param reference : the PartType that we want to see the incompatibilities,non null - * @return the Set list of the incompatibles PartType - */ Set getIncompatibilities(PartType reference); - - /* - * return the list of the requirements PartType of a PartType - * @param reference : the PartType that we want to see the requirements,non null - * @return the Set list of the requirements PartType - */ Set getRequirements(PartType reference); } \ No newline at end of file diff --git a/src/fr/api/CompatibilityManager.java b/src/fr/api/CompatibilityManager.java index 1be12fc..b620cc3 100644 --- a/src/fr/api/CompatibilityManager.java +++ b/src/fr/api/CompatibilityManager.java @@ -1,34 +1,8 @@ package src.fr.api; import java.util.Set; public interface CompatibilityManager extends CompatibilityChecker { - - /* - * add a incompatibles PartType to a PartType - * @param reference : the PartType that we wish to add incompatibilities - * @param target : Set list of incompatibilities PartType to add - */ void addIncompatibilities(PartType reference,Set target); - - /* - * remove a PartType of the incompatibilities of a PartType, warning, - * warning : we must also remove the incompatibility from all the other PartTypes which the @param reference in their incompatibility - * @param reference : the PartType that we wish to remove a incompatible PartType - * @param target : PartType to remove of incompatibility - */ void removeIncompatibility(PartType reference, PartType target); - - - /* - * add requirements PartType to a PartType - * @param reference : the PartType that we wish to add requirements - * @param target : Set list of requirement PartType to add - */ void addRequirements(PartType reference, Set target); - - /* - * remove a PartType of the incompatibilities of a PartType - * @param reference : the PartType that we wish to remove a requirement PartType - * @param target : PartType to remove of requirement - */ void removeRequirement(PartType reference, PartType target); } \ No newline at end of file diff --git a/src/fr/api/Configuration.java b/src/fr/api/Configuration.java index 7a7e221..c849b7f 100644 --- a/src/fr/api/Configuration.java +++ b/src/fr/api/Configuration.java @@ -1,18 +1,13 @@ package src.fr.api; import java.util.Set; +import java.util.Optional; + public interface Configuration { - - - /* - * @return true if there is no compatibility issue between PartType else false - */ boolean isValid(); - - boolean isComplete(); - Set getSelectedParts(); + public Set getSelectedParts(); + public Optional getSelectionForCategory(Category category); void selectPart(PartType chosenPart); - PartType getSelectionForCategory(Category category); void unselectPartType(Category categoryToClear); void clear(); } \ No newline at end of file diff --git a/src/fr/api/Part.java b/src/fr/api/Part.java new file mode 100644 index 0000000..c6646a5 --- /dev/null +++ b/src/fr/api/Part.java @@ -0,0 +1,8 @@ +package src.fr.api; +public interface Part extends PropertyManager { + default String getName() { + return this.getClass().getTypeName(); + }; + Category getCategory(); + PartType getType(); +} \ No newline at end of file diff --git a/src/fr/api/PropertyManager.java b/src/fr/api/PropertyManager.java new file mode 100644 index 0000000..53f5d45 --- /dev/null +++ b/src/fr/api/PropertyManager.java @@ -0,0 +1,42 @@ +package src.fr.api; + +import java.util.Set; +import java.util.Optional; +public interface PropertyManager { + /** + * Returns an immutable set of the property names supported by the property manager. + * + * @return + */ + public Set getPropertyNames(); + + /** + * Returns the immutable set of discrete string values for a given property. + * For properties that have a non explicit set of possible values (eg double converted to strings), + * or for a non existing property name, returns an empty set. + * + * @param propertyName a non-null string reference + * @return an immutable set (see above) + */ + public Set getAvailablePropertyValues(String propertyName); + + + /** + * Returns the optional value of a property. + * If the object does not support that property then an empty optional is returned. + * @param propertyName the property to read + * @return + */ + public Optional getProperty(String propertyName); + + /** + * Sets the value of a given property. + * If there is not such property, or if it not writable, or if the value is invalid + * then an IllegalArgumentException is thrown. + * @param propertyName + * @param propertyValue + * @throws IllegalArgumentException (see above) + */ + void setProperty(String propertyName, String propertyValue); + + } \ No newline at end of file diff --git a/src/fr/impl/CompatibilityCheckerImpl.java b/src/fr/impl/CompatibilityCheckerImpl.java index d628ffd..0b99b22 100644 --- a/src/fr/impl/CompatibilityCheckerImpl.java +++ b/src/fr/impl/CompatibilityCheckerImpl.java @@ -1,27 +1,28 @@ package src.fr.impl; -//import java.util.HashMap; +import java.util.HashMap; import java.util.Set; - import src.fr.api.PartType; -import src.fr.api.CompatibilityManager; public class CompatibilityCheckerImpl implements src.fr.api.CompatibilityChecker { - private CompatibilityManager compatibilityManager; - public CompatibilityCheckerImpl( CompatibilityManager compatibilityManager){ - this.compatibilityManager=compatibilityManager; + private HashMap> incompatibilities; + private HashMap> requirements; + + public CompatibilityCheckerImpl( HashMap> incompatibilities, HashMap> requirements){ + this.incompatibilities=incompatibilities; + this.requirements= requirements; } @Override public Set getIncompatibilities(PartType reference) { - return this.compatibilityManager.getIncompatibilities(reference); + return this.incompatibilities.get(reference); } @Override public Set getRequirements(PartType reference) { - return this.compatibilityManager.getRequirements(reference); + return this.requirements.get(reference); } diff --git a/src/fr/impl/CompatibilityManagerImpl.java b/src/fr/impl/CompatibilityManagerImpl.java index 49562d3..ab8ed60 100644 --- a/src/fr/impl/CompatibilityManagerImpl.java +++ b/src/fr/impl/CompatibilityManagerImpl.java @@ -1,7 +1,6 @@ package src.fr.impl; import java.util.HashMap; -import java.util.Map; import java.util.HashSet; import java.util.Set; import java.util.Objects; @@ -29,7 +28,6 @@ public class CompatibilityManagerImpl implements src.fr.api.CompatibilityManager if(incompa.isEmpty()){ incompatibilities.put(reference, target); - }else { for(PartType x: target){ if (incompa.contains(x)){ @@ -41,12 +39,10 @@ public class CompatibilityManagerImpl implements src.fr.api.CompatibilityManager //Ajout ref à x incompa.add(x); System.out.println("Add "+reference.getName() +" incompatible with "+x.getName()); - - this.incompatibilities.put(reference, incompa); - // Symétrie + //Ajoute x à ref - //this.getIncompatibilities(x).add(reference); - //System.out.println("Add "+x.getName() +" incompatible with "+reference.getName()); + this.getIncompatibilities(x).add(reference); + System.out.println("Add "+x.getName() +" incompatible with "+reference.getName()); } } } @@ -65,10 +61,8 @@ public class CompatibilityManagerImpl implements src.fr.api.CompatibilityManager }else{ if(incompa.contains(target)){ incompa.remove(target); - this.incompatibilities.replace(reference, incompa); - // SyMéTrIe //Remove target -> ref - //this.getIncompatibilities(target).remove(reference); + this.getIncompatibilities(target).remove(reference); }else { System.out.println("This part doesn't exist in incompatibilities list"); } @@ -96,12 +90,10 @@ public class CompatibilityManagerImpl implements src.fr.api.CompatibilityManager //Ajout ref à x require.add(x); System.out.println("Add "+reference.getName() +" compatible with "+x.getName()); - - this.requirements.put(reference, require); - //Symétrie + //Ajoute x à ref - //this.getRequirements(x).add(reference); - //System.out.println("Add "+x.getName() +" compatible with "+reference.getName()); + this.getRequirements(x).add(reference); + System.out.println("Add "+x.getName() +" compatible with "+reference.getName()); } } } @@ -121,85 +113,25 @@ public class CompatibilityManagerImpl implements src.fr.api.CompatibilityManager }else{ if(require.contains(target)){ require.remove(target); - this.requirements.replace(reference, require); - // SyMéTrIe //Remove target -> ref - //this.getRequirements(target).remove(reference); + this.getRequirements(target).remove(reference); }else { System.out.println("This part doesn't exist in compatibilities list"); } } } - - // A -> B -> C -> A, D -> B - //erquirement only - private void Femeture_Transivite(PartType reference, Set result, Set visited, PartType start){ - //Condition de quitter la boucle - if(visited.contains(reference)){ - return; - }else { - visited.add(reference); - } - - Set list = null; - //Get all requirement of A (in example is B) - list = this.requirements.get(reference); - - if(list != null){ // list = {B} - for(PartType pt: list){ - if(!result.contains(pt)&& pt !=start){ - result.add(pt); - } - Femeture_Transivite(pt,result,visited,reference); - } - - } - } @Override public Set getIncompatibilities(PartType reference) { - Set result = new HashSet<>(); - - // Remove the case of result become null - Set directIncompa = this.incompatibilities.get(reference); - if(directIncompa!=null){ - result.addAll(directIncompa); - } - - // Collect the requirements list - Set requirements = new HashSet<>(); - Femeture_Transivite(reference, requirements,new HashSet<>(),reference); - - for(Map.Entry> entry : this.incompatibilities.entrySet()){ - // check start - if(entry.getValue().contains(reference)){ - result.add(entry.getKey()); - } - - // check incompatible of A's requirements - for(PartType pt: requirements){ - // In Catalog of pt - if(entry.getValue().contains(pt)){ - result.add(entry.getKey()); - } - // Direct of pt - Set direct_pt = this.incompatibilities.get(pt); - if(direct_pt!=null){ - result.addAll(direct_pt); - } - } - - } - - return result; + // Il faut verifier ref est existé dans Hashmap + //return this.incompatibilities.get(reference); + return this.incompatibilities.getOrDefault(reference, new HashSet()); } - @Override public Set getRequirements(PartType reference) { - Set result = new HashSet<>(); - Femeture_Transivite(reference, result,new HashSet<>(),reference); - return result; + //return this.requirements.get(reference); + return this.requirements.getOrDefault(reference, new HashSet()); } } \ No newline at end of file diff --git a/src/fr/impl/ConfigurationImpl.java b/src/fr/impl/ConfigurationImpl.java index 7377e40..0f05797 100644 --- a/src/fr/impl/ConfigurationImpl.java +++ b/src/fr/impl/ConfigurationImpl.java @@ -3,6 +3,7 @@ package src.fr.impl; import src.fr.api.Category; import src.fr.api.PartType; import src.fr.api.CompatibilityManager; +import src.fr.api.Part; import java.util.Set; @@ -41,7 +42,7 @@ public class ConfigurationImpl implements src.fr.api.Configuration { } @Override - public Set getSelectedParts() { + public Set getSelectedParts() { return selectedParts; } diff --git a/src/fr/impl/PartImpl.java b/src/fr/impl/PartImpl.java new file mode 100644 index 0000000..27f772d --- /dev/null +++ b/src/fr/impl/PartImpl.java @@ -0,0 +1,37 @@ +package src.fr.impl; + +import java.util.Optional; +import java.util.Set; + +import src.fr.api.Category; +import src.fr.api.PartType; + +public class PartImpl implements src.fr.api.Part { + + private PartType type; + + public Category getCategory(){ + return this.type.getCategory(); + } + public PartType getType(){ + return this.type; + } + @Override + public Set getPropertyNames() { + return null; + } + @Override + public Set getAvailablePropertyValues(String propertyName) { + return null; + } + @Override + public Optional getProperty(String propertyName) { + return null; + } + @Override + public void setProperty(String propertyName, String propertyValue) { + return; + }; +} + + diff --git a/src/fr/impl/PartTypeImpl.java b/src/fr/impl/PartTypeImpl.java index 01456a5..fd22aab 100644 --- a/src/fr/impl/PartTypeImpl.java +++ b/src/fr/impl/PartTypeImpl.java @@ -6,6 +6,9 @@ public class PartTypeImpl implements src.fr.api.PartType { private String name; private Category category; + //V2 implement + private Class classRef; + public PartTypeImpl(String name, Category category ) { this.name = name; this.category = category; diff --git a/src/fr/test/test.java b/src/fr/test/test.java index 17b79cb..0f87174 100644 --- a/src/fr/test/test.java +++ b/src/fr/test/test.java @@ -44,13 +44,6 @@ public class test { CompatibilityManager cm = new CompatibilityManagerImpl(); - PartType[] list = {EG100,EG133,EG210,ED110,ED180,EH120,TM5,TM6,TA5,TS6,TSF7,TC120,XC,XM,XS,IN,IH,IS}; - PartType[] listEn = {EG100,EG133,EG210,ED110,ED180,EH120}; - PartType[] listTr = {TM5,TM6,TA5,TS6,TSF7,TC120}; - PartType[] listEx = {XC,XM,XS}; - PartType[] listIn = {IN,IH,IS}; - - @Before public void init(){ @@ -96,15 +89,19 @@ public class test { cm.addRequirements(XS, XSRequirement); cm.addIncompatibilities(IS, ISIncompatibilities); cm.addRequirements(IS, ISRequirement); + + + + } @Test - public void test_Incompatibilities_Simple_1(){ + public void test_1_Incompatibilities_1(){ assertTrue(cm.getIncompatibilities(TA5).contains(EG100)); } @Test - public void test_multiple_Incompatibilities_Simple_2(){ + public void test_multiple_Incompatibilities_2(){ assertTrue( cm.getIncompatibilities(TSF7).contains(EG100)&& cm.getIncompatibilities(TSF7).contains(EG133)&& @@ -113,51 +110,13 @@ public class test { } @Test - public void test_Requirements_3(){ + public void test_1_Requirements_3(){ assertTrue(cm.getRequirements(EH120).contains(TC120)); } - - - /* - * A <-> B - * if A -> B then B -> A - */ @Test - public void test_Incompatibilities_Complex_4(){ - System.out.println("size EG100 incompatibilities : "+cm.getIncompatibilities(EG100).size()); - assertTrue(cm.getIncompatibilities(EG100).contains(IS)); - assertTrue(cm.getIncompatibilities(EG100).contains(XS)); - } - - /* - * if A require B - * then A is incompatible with all incompatible of B - */ - @Test - public void test_Require_Incompatibilities_Complex_5(){ - assertTrue(cm.getIncompatibilities(XS).contains(EG100)); - System.out.println("size XS incompatibilities : " + cm.getIncompatibilities(XS).size()); - assertTrue(cm.getIncompatibilities(XS).contains(TM5)); - } - - - /* - * Require Require Require - * if A -> B && B -> C then A -> C - */ - @Test - public void test_Incompatibilities_Complex_7(){ - cm.addRequirements(TC120, Set.of(XC)); - System.out.print(cm.getRequirements(TC120).size()); - for(PartType p : cm.getRequirements(TC120)){ - System.out.print(p.getName()); - } - - System.out.println("TC120 requirment size : " + cm.getRequirements(TC120).contains(XC)); - assertTrue(cm.getRequirements(TC120).contains(XC)); - assertTrue(cm.getRequirements(EH120).contains(XC)); - cm.removeRequirement(TC120, XC); + public void test_Empty_Incompatibilities_4(){ + assertTrue(cm.getIncompatibilities(EH120).isEmpty()); } @Test @@ -166,51 +125,18 @@ public class test { } @Test - public void test_Remove_and_restore_Incompatibilities_6(){ + public void test_Remove(){ assertTrue(cm.getIncompatibilities(XM).contains(EG100)); cm.removeIncompatibility(XM, EG100); assertFalse(cm.getIncompatibilities(XM).contains(EG100)); Set setEG100 = new HashSet(); setEG100.add(EG100); - cm.addIncompatibilities(XM, setEG100); - assertTrue(cm.getIncompatibilities(XM).contains(EG100)); - } + cm.addIncompatibilities(EG100, setEG100); + System.out.println(cm.getIncompatibilities(XM) + "//////////"); + //assertTrue(cm.getIncompatibilities(XM).contains(EG100)); - @Test - public void test_Remove_Empty_7(){ - //Wrong test - //assertTrue(cm.getIncompatibilities(EG100).isEmpty()); - // je crois on a TA5, TSF7, XM, XS et IS, faut tester - cm.removeIncompatibility(EG100, EG100); - assertFalse(cm.getIncompatibilities(EG100).contains(EG100)); } + - @Test - public void test_Remove_and_restore_Requirements_8(){ - assertTrue(cm.getRequirements(EH120).contains(TC120)); - cm.removeRequirement(EH120, TC120); - assertFalse(cm.getRequirements(EH120).contains(TC120)); - Set setTC120 = new HashSet(); - setTC120.add(TC120); - cm.addRequirements(EH120, setTC120); - assertTrue(cm.getRequirements(EH120).contains(TC120)); - } - - @Test - public void test_Add_and_restore_Incompatibilities_9(){ - assertTrue(cm.getIncompatibilities(TSF7).contains(EG100)); - assertTrue(cm.getIncompatibilities(TSF7).contains(EG133)); - assertTrue(cm.getIncompatibilities(TSF7).contains(ED110)); - cm.removeIncompatibility(TSF7, EG100); - assertFalse(cm.getIncompatibilities(TSF7).contains(EG100)); - assertTrue(cm.getIncompatibilities(TSF7).contains(EG133)); - assertTrue(cm.getIncompatibilities(TSF7).contains(ED110)); - Set setEG100 = new HashSet(); - setEG100.add(EG100); - cm.addIncompatibilities(TSF7, setEG100); - assertTrue(cm.getIncompatibilities(TSF7).contains(EG100)); - assertTrue(cm.getIncompatibilities(TSF7).contains(EG133)); - assertTrue(cm.getIncompatibilities(TSF7).contains(ED110)); - } - + }