correction bug + ajout de test

This commit is contained in:
Rochas
2024-12-20 21:23:13 +01:00
parent c62f1e1be1
commit 88f90f0936
7 changed files with 71 additions and 22 deletions

View File

@@ -13,26 +13,14 @@ th,td{border: 1px solid rgb(160 160 160);padding: 8px 10px;}</style>
<th>EG210</th>
<th>25000 €</th>
</tr>
<tr>
<th>Interior</th>
<th>IS</th>
<th>2500 €</th>
<th>color : red</th>
</tr>
<tr>
<th>Transmission</th>
<th>TSF7</th>
<th>15000 €</th>
</tr>
<tr>
<th>Exterior</th>
<th>XS</th>
<th>10000 €</th>
<th>color : red</th>
</tr>
<tr>
<th colspan="2">Total Price : </th>
<th>52500 € </th>
<th>40000 € </th>
</tr>
</table>
</body>

View File

@@ -26,7 +26,7 @@ public class ConfigurationImpl implements Configuration {
for(String pr: pt1.getPropertyNames()){
Optional<String> prOptional = pt1.getProperty(pr);
if(!prOptional.isEmpty()){
test = ((PartImpl)pt1).isValidProperty(pr);
test = test && ((PartImpl)pt1).isValidProperty(pr);
}
else test = false;
}
@@ -67,7 +67,9 @@ public class ConfigurationImpl implements Configuration {
else System.out.println("\tnot ok");
System.out.println(test_Requirement + " " + test_Incompabilities);
test = test && test_Requirement && test_Incompabilities;
System.out.println("post final : " + test);
}
System.out.println("final : " + test);
return test;
}

View File

@@ -26,7 +26,10 @@ public class Engine extends PartImpl {
@Override
public void setType(PartType type){
this.type = type;
this.price = prices.get(type.getName());
this.type = type;
if(prices.containsKey(type.getName())){
this.price = prices.get(type.getName());
}
else this.price = 0;
}
}

View File

@@ -47,7 +47,10 @@ public class Exterior extends PartImpl {
@Override
public void setType(PartType type){
this.type = type;
this.price = prices.get(type.getName());
this.type = type;
if(prices.containsKey(type.getName())){
this.price = prices.get(type.getName());
}
else this.price = 0;
}
}

View File

@@ -47,8 +47,11 @@ public class Interior extends PartImpl {
@Override
public void setType(PartType type){
this.type = type;
this.price = prices.get(type.getName());
this.type = type;
if(prices.containsKey(type.getName())){
this.price = prices.get(type.getName());
}
else this.price = 0;
}
}

View File

@@ -26,7 +26,10 @@ public class Transmission extends PartImpl {
@Override
public void setType(PartType type){
this.type = type;
this.price = prices.get(type.getName());
this.type = type;
if(prices.containsKey(type.getName())){
this.price = prices.get(type.getName());
}
else this.price = 0;
}
}

View File

@@ -206,6 +206,28 @@ public class test_V1 {
assertTrue(cm.getIncompatibilities(TSF7).contains(ED110));
}
@Test
public void test_contradiction(){
CompatibilityManager cm2 = new CompatibilityManagerImpl();
PartType eg= new PartTypeImpl("eg",Engine.class, engine);
PartType tr= new PartTypeImpl("Tr", Transmission.class, transmission);
Set<PartType> egIncompatibilities = new HashSet<PartType>();
egIncompatibilities.add(tr);
cm.addIncompatibilities(eg, egIncompatibilities);
Set<PartType> efRequirement = new HashSet<PartType>();
efRequirement.add(eg);
cm.addRequirements(tr, efRequirement);
assertFalse(cm.getIncompatibilities(eg).contains(eg));
assertTrue(cm.getRequirements(tr).contains(eg));
assertTrue(cm.getIncompatibilities(tr).contains(tr)); //tr Require eg, eg Incompatible tr, -> eg Incompatible eg
}
//Configuration
@@ -320,4 +342,29 @@ public class test_V1 {
assertTrue(config1.isValid());
}
@Test
public void test_contradiction_config(){
CompatibilityManager cm2 = new CompatibilityManagerImpl();
PartType eg= new PartTypeImpl("eg",Engine.class, engine);
PartType tr= new PartTypeImpl("Tr", Transmission.class, transmission);
PartType ex= new PartTypeImpl("Ex", Exterior.class, exterior);
PartType in= new PartTypeImpl("In", Interior.class, interior);
Set<PartType> egIncompatibilities = new HashSet<PartType>();
egIncompatibilities.add(tr);
cm2.addIncompatibilities(eg, egIncompatibilities);
Set<PartType> efRequirement = new HashSet<PartType>();
efRequirement.add(eg);
cm2.addRequirements(eg, efRequirement);
ConfigurationImpl config1 = new ConfigurationImpl(cm2);
config1.selectPart(eg);
config1.selectPart(tr);
config1.selectPart(ex);
config1.selectPart(in);
assertFalse(config1.isValid());
}
}