1
- using Advanced . Algorithms . DataStructures . Graph . AdjacencyList ;
2
- using Advanced . Algorithms . Graph ;
1
+ using Advanced . Algorithms . Graph ;
3
2
using Microsoft . VisualStudio . TestTools . UnitTesting ;
4
3
5
4
@@ -9,9 +8,49 @@ namespace Advanced.Algorithms.Tests.Graph
9
8
public class BellmanFord_Tests
10
9
{
11
10
[ TestMethod ]
12
- public void BellmanFord_Smoke_Test ( )
11
+ public void BellmanFord_AdjacencyList_Smoke_Test ( )
13
12
{
14
- var graph = new WeightedDiGraph < char , int > ( ) ;
13
+ var graph = new Algorithms . DataStructures . Graph . AdjacencyList . WeightedDiGraph < char , int > ( ) ;
14
+
15
+ graph . AddVertex ( 'S' ) ;
16
+ graph . AddVertex ( 'A' ) ;
17
+ graph . AddVertex ( 'B' ) ;
18
+ graph . AddVertex ( 'C' ) ;
19
+ graph . AddVertex ( 'D' ) ;
20
+ graph . AddVertex ( 'T' ) ;
21
+
22
+ graph . AddEdge ( 'S' , 'A' , - 10 ) ;
23
+ graph . AddEdge ( 'S' , 'C' , - 5 ) ;
24
+
25
+ graph . AddEdge ( 'A' , 'B' , 4 ) ;
26
+ graph . AddEdge ( 'A' , 'C' , 2 ) ;
27
+ graph . AddEdge ( 'A' , 'D' , 8 ) ;
28
+
29
+ graph . AddEdge ( 'B' , 'T' , 10 ) ;
30
+
31
+ graph . AddEdge ( 'C' , 'D' , 9 ) ;
32
+
33
+ graph . AddEdge ( 'D' , 'B' , 6 ) ;
34
+ graph . AddEdge ( 'D' , 'T' , 10 ) ;
35
+
36
+ var algorithm = new BellmanFordShortestPath < char , int > ( new BellmanFordShortestPathOperators ( ) ) ;
37
+
38
+ var result = algorithm . FindShortestPath ( graph , 'S' , 'T' ) ;
39
+
40
+ Assert . AreEqual ( 4 , result . Length ) ;
41
+
42
+ var expectedPath = new char [ ] { 'S' , 'A' , 'B' , 'T' } ;
43
+ for ( int i = 0 ; i < expectedPath . Length ; i ++ )
44
+ {
45
+ Assert . AreEqual ( expectedPath [ i ] , result . Path [ i ] ) ;
46
+ }
47
+
48
+ }
49
+
50
+ [ TestMethod ]
51
+ public void BellmanFord_AdjacencyMatrix_Smoke_Test ( )
52
+ {
53
+ var graph = new Algorithms . DataStructures . Graph . AdjacencyMatrix . WeightedDiGraph < char , int > ( ) ;
15
54
16
55
graph . AddVertex ( 'S' ) ;
17
56
graph . AddVertex ( 'A' ) ;
0 commit comments