From 568f779be7d246ad38c5123192fd7a77a9a84fb8 Mon Sep 17 00:00:00 2001 From: Cavailles Kevin Date: Sun, 31 May 2020 15:25:57 +0200 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20des=20tests=20existants,=20?= =?UTF-8?q?ajout=20tests=20A*=20et=20tests=20d'optimalit=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shortestpath/AStarAlgorithm.java | 22 +-- .../shortestpath/DijkstraAlgorithm.java | 15 +- .../algorithm/shortestpath/LabelStar.java | 11 +- .../graphs/algorithm/utils/BinaryHeap.java | 42 +++-- .../shortestpath/AStarAlgorithmTest.java | 107 ------------ .../shortestpath/DijkstraAlgorithmTest.java | 127 -------------- .../algorithm/shortestpath/algorithmTest.java | 96 ----------- .../test/java/tests/AStarAlgorithmTest.java | 144 ++++++++++++++++ .../src/test/java/tests/AllTests.java | 11 ++ .../java/tests/DijkstraAlgorithmTest.java | 159 ++++++++++++++++++ .../src/test/java/tests/OptimaliteTest.java | 109 ++++++++++++ .../src/test/java/tests/algorithmTest.java | 85 ++++++++++ .../main/java/org/insa/graphs/model/Path.java | 6 +- 13 files changed, 566 insertions(+), 368 deletions(-) delete mode 100644 be-graphes-algos/src/test/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithmTest.java delete mode 100644 be-graphes-algos/src/test/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithmTest.java delete mode 100644 be-graphes-algos/src/test/java/org/insa/graphs/algorithm/shortestpath/algorithmTest.java create mode 100644 be-graphes-algos/src/test/java/tests/AStarAlgorithmTest.java create mode 100644 be-graphes-algos/src/test/java/tests/AllTests.java create mode 100644 be-graphes-algos/src/test/java/tests/DijkstraAlgorithmTest.java create mode 100644 be-graphes-algos/src/test/java/tests/OptimaliteTest.java create mode 100644 be-graphes-algos/src/test/java/tests/algorithmTest.java diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithm.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithm.java index 8867956..b8a148d 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithm.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithm.java @@ -22,14 +22,7 @@ public class AStarAlgorithm extends DijkstraAlgorithm { @Override protected Label createLabel(ShortestPathData data, Arc pere, Label noeudPrecedent) { - if(pere == null && noeudPrecedent == null) { - return new LabelStar(data.getOrigin(), - 0, - Point.distance(data.getOrigin().getPoint(), data.getDestination().getPoint() ) , - null); - } - - + double coutEstime = 0; @@ -67,8 +60,15 @@ public class AStarAlgorithm extends DijkstraAlgorithm { noeudPrecedent.getCost() + data.getCost(pere), coutEstime, pere); - - - } + + @Override + protected Label createLabelOrigin(ShortestPathData data) { + + return new LabelStar(data.getOrigin(), + 0, + Point.distance(data.getOrigin().getPoint(), data.getDestination().getPoint() ) , + null); + + } } diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java index e4f4635..4e1d03d 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java @@ -31,7 +31,7 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { Label labels[] = new Label[graph.getNodes().size()]; Arrays.fill(labels, null); - Label origine = createLabel(data, null, null); + Label origine = createLabelOrigin(data); labels[data.getOrigin().getId()] = origine; tas.insert(origine); @@ -135,17 +135,16 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { solution = new ShortestPathSolution(data, Status.INFEASIBLE); } - System.out.println("nb erreurs = "+cptErreurs); +// System.out.println("nb erreurs = "+cptErreurs); return solution; } protected Label createLabel(ShortestPathData data, Arc pere, Label noeudPrecedent) { - if(pere != null && noeudPrecedent != null) { - return new Label( pere.getDestination() , noeudPrecedent.getCost()+ data.getCost(pere), pere); - }else { - return new Label(data.getOrigin(), 0, null); - } - + return new Label( pere.getDestination() , noeudPrecedent.getCost()+ data.getCost(pere), pere); + } + + protected Label createLabelOrigin(ShortestPathData data) { + return new Label(data.getOrigin(), 0, null); } } diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/LabelStar.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/LabelStar.java index ab7f26a..bb42d71 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/LabelStar.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/LabelStar.java @@ -3,7 +3,7 @@ package org.insa.graphs.algorithm.shortestpath; import org.insa.graphs.model.Arc; import org.insa.graphs.model.Node; -public class LabelStar extends Label{ +public class LabelStar extends Label implements Comparable