DojoDeveloppement/Mercredi23Mai2012Rétrospective de la session du /Mercredi16Mai2012 :
Propositions pour ce soir :
src/net/jonathanperret/dojo/Probleme.java
package net.jonathanperret.dojo;
import java.util.HashMap;
import java.util.Map;
public class Probleme {
private final Map<String, Integer> aretes = new HashMap<String, Integer>();
public void ajouteArete(final String noeud1, final String noeud2, final int cout) {
aretes.put(noeud1 + noeud2, cout);
}
public int getCout(final String noeud1, final String noeud2) {
return aretes.get(noeud1 + noeud2);
}
}
src/net/jonathanperret/dojo/ProblemeDrhTest.java
package net.jonathanperret.dojo;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class ProblemeDrhTest {
@Test
public void coutEvaluationSolutionEgalSommeDesArêtesAjoutees1() {
Probleme probleme = new Probleme();
probleme.ajouteArete("A", "B", 10);
Solution solution = new Solution(probleme);
solution.ajouteArete("A", "B");
assertEquals(10, solution.evalue());
}
@Test
public void coutEvaluationSolutionEgalSommeDesArêtesAjoutees2() {
Probleme probleme = new Probleme();
probleme.ajouteArete("A", "B", 15);
Solution solution = new Solution(probleme);
solution.ajouteArete("A", "B");
assertEquals(15, solution.evalue());
}
@Test
public void uneSolutionADeuxAretesFaitLaSommeDesCouts() {
Probleme probleme = new Probleme();
probleme.ajouteArete("A", "B", 15);
probleme.ajouteArete("C", "D", 10);
Solution solution = new Solution(probleme);
solution.ajouteArete("A", "B");
assertEquals(15, solution.evalue());
}
}
src/net/jonathanperret/dojo/Solution.java
package net.jonathanperret.dojo;
public class Solution {
private final Probleme probleme;
private String noeud2;
private String noeud1;
public Solution(final Probleme probleme) {
this.probleme = probleme;
}
public int evalue() {
return probleme.getCout(noeud1, noeud2);
}
public void ajouteArete(final String noeud1, final String noeud2) {
this.noeud1 = noeud1;
this.noeud2 = noeud2;
}
}