Executed features | Passed | Failures | Errors | Skipped | Success rate | Time |
---|---|---|---|---|---|---|
4 | 4 | 0 | 0 | 0 | 100.0% | 0.037 seconds |
Breadth First Search Algorithm
Breadth First Search algorithm for finding the shortest paths between nodes in a graph
should find a route for simple graph
Return
(0.006 seconds)
|
|||||||||||||||||||||||||||||||||||||||||
Given:
|
def graph = Graph.of([ A: [B: 7, C: 2], B: [A: 3, C: 5], C: [A: 1, B: 3] ]) |
||||||||||||||||||||||||||||||||||||||||
When:
|
def path = algorithm.findPath(graph, source, target) |
||||||||||||||||||||||||||||||||||||||||
Then:
|
path == shortest |
||||||||||||||||||||||||||||||||||||||||
And:
|
graph.getDistance(path) == time as double |
||||||||||||||||||||||||||||||||||||||||
Examples:
|
|
4/4 passed
|
|||||||||||||||||||||||||||||||||||||||
should find a route for complex graph
Return
(0)
|
|||||||||||||||||||||||||||||||||||||||||
Given:
|
def graph = Graph.of([ A: [B: 1], B: [A: 1, D: 1], C: [A: 1], D: [C: 1, E: 1], E: [F: 1], F: [D: 1, E: 1]]) |
||||||||||||||||||||||||||||||||||||||||
When:
|
def path = algorithm.findPath(graph, source, target) |
||||||||||||||||||||||||||||||||||||||||
Then:
|
path == shortest |
||||||||||||||||||||||||||||||||||||||||
And:
|
graph.getDistance(path) == time as double |
||||||||||||||||||||||||||||||||||||||||
And:
|
time = shortest.size() - 1 |
||||||||||||||||||||||||||||||||||||||||
Examples:
|
|
7/7 passed
|
|||||||||||||||||||||||||||||||||||||||
should thrown an exception for an empty graph
Return
(0)
|
|||||||||||||||||||||||||||||||||||||||||
Given:
|
def graph = Graph.of([:]) |
||||||||||||||||||||||||||||||||||||||||
When:
|
algorithm.findPath(graph, 'A', 'B') |
||||||||||||||||||||||||||||||||||||||||
Then:
|
thrown NullPointerException |
||||||||||||||||||||||||||||||||||||||||
should return an empty path if can't find a route
Return
(0)
|
|||||||||||||||||||||||||||||||||||||||||
Given:
|
a simple graph with no edge between nodes
|
||||||||||||||||||||||||||||||||||||||||
def graph = Graph.of([A: [:], B: [:]]) |
|||||||||||||||||||||||||||||||||||||||||
When:
|
def path = algorithm.findPath(graph, 'A', 'B') |
||||||||||||||||||||||||||||||||||||||||
Then:
|
path == [] |