From 8a4c4629672c6bb2c0aac368a6a83f7169c4a030 Mon Sep 17 00:00:00 2001 From: Jegors Cemisovs Date: Mon, 3 Jan 2022 21:29:03 +0200 Subject: [PATCH 1/2] Updated build.gradle --- build.gradle | 6 ++---- docs/spock-reports/aggregated_report.json | 2 +- docs/spock-reports/graph.BreadthFirstSearchSpec.html | 4 ++-- docs/spock-reports/graph.DijkstrasAlgorithmSpec.html | 4 ++-- docs/spock-reports/graph.GraphSpec.html | 4 ++-- docs/spock-reports/graph.SearchAlgorithmSpec.html | 4 ++-- docs/spock-reports/index.html | 12 ++++++------ src/test/groovy/graph/GraphSpec.groovy | 1 - 8 files changed, 17 insertions(+), 20 deletions(-) diff --git a/build.gradle b/build.gradle index be9a153..f27459d 100644 --- a/build.gradle +++ b/build.gradle @@ -4,22 +4,20 @@ plugins { } group 'lv.id.jc' -version '1.0' +version '1.1' repositories { mavenCentral() } dependencies { - implementation 'org.codehaus.groovy:groovy-all:3.0.9' - // Spock Framework testImplementation 'org.spockframework:spock-core:2.0-groovy-3.0' testImplementation 'org.codehaus.groovy:groovy-all:3.0.9' // Spock Reports testRuntimeClasspath( "com.athaydes:spock-reports:2.1.1-groovy-3.0" ) { -// transitive = false // this avoids affecting your version of Groovy/Spock + transitive = false // this avoids affecting your version of Groovy/Spock } // Required for spock-reports testImplementation 'org.slf4j:slf4j-api:1.7.32' diff --git a/docs/spock-reports/aggregated_report.json b/docs/spock-reports/aggregated_report.json index 1419c96..5fe1e2c 100644 --- a/docs/spock-reports/aggregated_report.json +++ b/docs/spock-reports/aggregated_report.json @@ -1 +1 @@ -{"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":2,"totalFeatures":2,"passed":2,"successRate":1.0,"time":162},"title":"","narrative":""},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":46},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":66},"title":"","narrative":""},"graph.GraphSpec":{"executedFeatures":["should calculate distance"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":19},"title":"","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":2,"totalFeatures":2,"passed":2,"successRate":1.0,"time":133},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":40},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":67},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":125},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":2,"totalFeatures":2,"passed":2,"successRate":1.0,"time":115},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":43},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":69},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":127},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":2,"totalFeatures":2,"passed":2,"successRate":1.0,"time":136},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":44},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":80},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":112},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":2,"totalFeatures":2,"passed":2,"successRate":1.0,"time":204},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":61},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":74},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":154},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should returns an empty path for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":1,"skipped":0,"totalRuns":1,"totalFeatures":4,"passed":0,"successRate":0.0,"time":32},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":4,"passed":1,"successRate":1.0,"time":32},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":1,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":5,"passed":0,"successRate":0.0,"time":54},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":3,"passed":1,"successRate":1.0,"time":31},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":62},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":3,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":2,"successRate":0.4,"time":47},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":48},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":1,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":0,"successRate":0.0,"time":10},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":3,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":2,"successRate":0.4,"time":96},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":69},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":31},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":47},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":16},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":31},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":69},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":16},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":3,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":0,"successRate":0.0,"time":62},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":1,"errors":4,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":0,"successRate":0.0,"time":46},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":54},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":1,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":0,"successRate":0.0,"time":0},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":78},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":84},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":85},"title":"Comparison of two algorithms","narrative":""},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":116},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":68},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":17},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":54},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":15},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":1,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":4,"successRate":0.8,"time":32},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":53},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":16},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":1,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":5,"passed":0,"successRate":0.0,"time":47},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":5,"passed":1,"successRate":1.0,"time":32},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":63},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":31},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":47},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":16},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":4,"successRate":1.0,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":16},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":47},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":16},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":1,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":3,"successRate":0.75,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":1,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":4,"successRate":0.8,"time":31},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":38},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":7},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route","should thrown NPE path for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":4,"successRate":1.0,"time":63},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should thrown NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":32},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":37},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":15},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route","should thrown NPE path for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":4,"successRate":1.0,"time":78},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should thrown NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":23},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":47},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":0},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route","should thrown NPE path for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":4,"successRate":1.0,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should thrown NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":31},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":70},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":15},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route","should thrown NPE path for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":4,"successRate":1.0,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should thrown NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":22},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":37},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":3},"title":"Comparison of two algorithms","narrative":""}} \ No newline at end of file +{"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":2,"totalFeatures":2,"passed":2,"successRate":1.0,"time":162},"title":"","narrative":""},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":46},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":66},"title":"","narrative":""},"graph.GraphSpec":{"executedFeatures":["should calculate distance"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":19},"title":"","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":2,"totalFeatures":2,"passed":2,"successRate":1.0,"time":133},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":40},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":67},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":125},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":2,"totalFeatures":2,"passed":2,"successRate":1.0,"time":115},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":43},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":69},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":127},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":2,"totalFeatures":2,"passed":2,"successRate":1.0,"time":136},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":44},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":80},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":112},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":2,"totalFeatures":2,"passed":2,"successRate":1.0,"time":204},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":61},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":74},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":154},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should returns an empty path for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":1,"skipped":0,"totalRuns":1,"totalFeatures":4,"passed":0,"successRate":0.0,"time":32},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":4,"passed":1,"successRate":1.0,"time":32},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":1,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":5,"passed":0,"successRate":0.0,"time":54},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":3,"passed":1,"successRate":1.0,"time":31},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":62},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":3,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":2,"successRate":0.4,"time":47},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":48},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":1,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":0,"successRate":0.0,"time":10},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":3,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":2,"successRate":0.4,"time":96},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":69},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":31},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":47},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":16},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":31},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":69},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":16},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":3,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":0,"successRate":0.0,"time":62},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":1,"errors":4,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":0,"successRate":0.0,"time":46},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":54},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":1,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":0,"successRate":0.0,"time":0},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":78},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":84},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":85},"title":"Comparison of two algorithms","narrative":""},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":116},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":68},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":17},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":54},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":15},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should throw NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":1,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":4,"successRate":0.8,"time":32},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":53},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":16},"title":"Comparison of two algorithms","narrative":""},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":1,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":5,"passed":0,"successRate":0.0,"time":47},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":5,"passed":1,"successRate":1.0,"time":32},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":3,"totalFeatures":3,"passed":3,"successRate":1.0,"time":63},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":31},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":47},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":16},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":4,"successRate":1.0,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":16},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":47},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":16},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":1,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":3,"successRate":0.75,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path for an empty graph","should return an empty path if can't find a route"],"ignoredFeatures":[],"stats":{"failures":0,"errors":1,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":4,"successRate":0.8,"time":31},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":38},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":7},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route","should thrown NPE path for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":4,"successRate":1.0,"time":63},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should thrown NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":32},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":37},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":15},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route","should thrown NPE path for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":4,"successRate":1.0,"time":78},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should thrown NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":23},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":47},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":0},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route","should thrown NPE path for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":4,"successRate":1.0,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should thrown NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":31},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":70},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":15},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route","should thrown NPE path for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":4,"successRate":1.0,"time":69},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should thrown NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":22},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":37},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":3},"title":"Comparison of two algorithms","narrative":""},"graph.BreadthFirstSearchSpec":{"executedFeatures":["should find a route for complex graph","should find a route for simple graph","should return an empty path if can't find a route","should thrown NPE path for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":4,"totalFeatures":4,"passed":4,"successRate":1.0,"time":71},"title":"Breadth First Search Algorithm","narrative":"Breadth First Search algorithm for finding the shortest paths between nodes in a graph"},"graph.DijkstrasAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph","should find a route for a medium graph","should find a route for a simple graph","should return an empty path if can't find a route","should thrown NPE for an empty graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":23},"title":"Dijkstra's Algorithm","narrative":"Dijkstra's algorithm is an algorithm for finding the fastest paths between nodes in a graph"},"graph.GraphSpec":{"executedFeatures":["should be zero distance for an empty path","should be zero distance for any one node path","should calculate distance for a path","should return edges for a given node","should throw NPE for incorrect path"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":5,"totalFeatures":5,"passed":5,"successRate":1.0,"time":45},"title":"Generic Graph","narrative":"A generic implementation of Graph structure"},"graph.SearchAlgorithmSpec":{"executedFeatures":["should find a route for a complex graph"],"ignoredFeatures":[],"stats":{"failures":0,"errors":0,"skipped":0,"totalRuns":1,"totalFeatures":1,"passed":1,"successRate":1.0,"time":11},"title":"Comparison of two algorithms","narrative":""}} \ No newline at end of file diff --git a/docs/spock-reports/graph.BreadthFirstSearchSpec.html b/docs/spock-reports/graph.BreadthFirstSearchSpec.html index eb40416..72fc493 100644 --- a/docs/spock-reports/graph.BreadthFirstSearchSpec.html +++ b/docs/spock-reports/graph.BreadthFirstSearchSpec.html @@ -251,7 +251,7 @@

Report for graph.BreadthFirstSearchSpec

Summary:

-
Created on Mon Jan 03 21:16:51 EET 2022 by jegors.cemisovs
+
Created on Mon Jan 03 21:28:27 EET 2022 by jegors.cemisovs
@@ -272,7 +272,7 @@

Summary:

- +
0 0 100.0%0.069 seconds0.071 seconds
diff --git a/docs/spock-reports/graph.DijkstrasAlgorithmSpec.html b/docs/spock-reports/graph.DijkstrasAlgorithmSpec.html index 6125802..d26af3e 100644 --- a/docs/spock-reports/graph.DijkstrasAlgorithmSpec.html +++ b/docs/spock-reports/graph.DijkstrasAlgorithmSpec.html @@ -251,7 +251,7 @@

Report for graph.DijkstrasAlgorithmSpec

Summary:

-
Created on Mon Jan 03 21:16:51 EET 2022 by jegors.cemisovs
+
Created on Mon Jan 03 21:28:27 EET 2022 by jegors.cemisovs
@@ -272,7 +272,7 @@

Summary:

- +
0 0 100.0%0.022 seconds0.023 seconds
diff --git a/docs/spock-reports/graph.GraphSpec.html b/docs/spock-reports/graph.GraphSpec.html index 04717ad..cf37495 100644 --- a/docs/spock-reports/graph.GraphSpec.html +++ b/docs/spock-reports/graph.GraphSpec.html @@ -251,7 +251,7 @@

Report for graph.GraphSpec

Summary:

-
Created on Mon Jan 03 21:16:51 EET 2022 by jegors.cemisovs
+
Created on Mon Jan 03 21:28:28 EET 2022 by jegors.cemisovs
@@ -272,7 +272,7 @@

Summary:

- +
0 0 100.0%0.037 seconds0.045 seconds
diff --git a/docs/spock-reports/graph.SearchAlgorithmSpec.html b/docs/spock-reports/graph.SearchAlgorithmSpec.html index 2065f75..c796b02 100644 --- a/docs/spock-reports/graph.SearchAlgorithmSpec.html +++ b/docs/spock-reports/graph.SearchAlgorithmSpec.html @@ -251,7 +251,7 @@

Report for graph.SearchAlgorithmSpec

Summary:

-
Created on Mon Jan 03 21:16:51 EET 2022 by jegors.cemisovs
+
Created on Mon Jan 03 21:28:28 EET 2022 by jegors.cemisovs
@@ -272,7 +272,7 @@

Summary:

- +
0 0 100.0%0.003 seconds0.011 seconds
diff --git a/docs/spock-reports/index.html b/docs/spock-reports/index.html index 164c039..40a9694 100644 --- a/docs/spock-reports/index.html +++ b/docs/spock-reports/index.html @@ -84,7 +84,7 @@

Specification run results

Specifications summary:

-
Created on Mon Jan 03 21:16:52 EET 2022 by jegors.cemisovs
+
Created on Mon Jan 03 21:28:28 EET 2022 by jegors.cemisovs
@@ -111,7 +111,7 @@

Specifications summary:

- +
0 0 100.0%0.131 seconds0.150 seconds
@@ -142,7 +142,7 @@

Specifications:

0 0 100.0% -0.069 seconds +0.071 seconds @@ -155,7 +155,7 @@

Specifications:

0 0 100.0% -0.022 seconds +0.023 seconds @@ -168,7 +168,7 @@

Specifications:

0 0 100.0% -0.037 seconds +0.045 seconds @@ -181,7 +181,7 @@

Specifications:

0 0 100.0% -0.003 seconds +0.011 seconds diff --git a/src/test/groovy/graph/GraphSpec.groovy b/src/test/groovy/graph/GraphSpec.groovy index ff3f328..7264018 100644 --- a/src/test/groovy/graph/GraphSpec.groovy +++ b/src/test/groovy/graph/GraphSpec.groovy @@ -10,7 +10,6 @@ import spock.lang.Title class GraphSpec extends Specification { def "should return edges for a given node"() { - given: 'a simple graph with three nodes' def graph = Graph.of([ A: [B: 7, C: 2], From 707b54ab6a6b3568c13d0776ec1a6f8e63181dcc Mon Sep 17 00:00:00 2001 From: Jegors Cemisovs Date: Mon, 3 Jan 2022 21:39:16 +0200 Subject: [PATCH 2/2] Added UML schema --- docs/assets/uml/graph.png | Bin 0 -> 42051 bytes docs/assets/uml/graph.uml | 39 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 docs/assets/uml/graph.png create mode 100644 docs/assets/uml/graph.uml diff --git a/docs/assets/uml/graph.png b/docs/assets/uml/graph.png new file mode 100644 index 0000000000000000000000000000000000000000..cea38d7b05af83323e7b9fb25e7b1ae2b1a3cdb3 GIT binary patch literal 42051 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 k@7?(C%kcl+w{R@nc?0Hdt*?3K^f^mO$cq< + + JAVA + lv.id.jc.algorithm.graph + + lv.id.jc.algorithm.graph.SearchAlgorithm + lv.id.jc.algorithm.graph.DijkstrasAlgorithm + lv.id.jc.algorithm.graph.BreadthFirstSearch + lv.id.jc.algorithm.graph.Graph + + + + + + + + + + + + + + + + + + + lv.id.jc.algorithm.graph.Graph + + + Fields + Inner Classes + Methods + Properties + + All + private + +