1 #include "tests/helpers.h"
2 #include "sources/dijkstra.h"
4 //custom graph 1 (connected!)
10 NAN
,4.0,6.0,3.0,NAN
,1.0,NAN
,NAN
,NAN
,NAN
,
11 4.0,NAN
,NAN
,5.0,NAN
,1.0,3.0,NAN
,1.0,NAN
,
12 6.0,NAN
,NAN
,NAN
,NAN
,7.0,1.0,NAN
,NAN
,NAN
,
13 3.0,5.0,NAN
,NAN
,4.0,NAN
,NAN
,NAN
,NAN
,1.0,
14 NAN
,NAN
,NAN
,4.0,NAN
,NAN
,NAN
,2.0,3.0,NAN
,
15 1.0,1.0,7.0,NAN
,NAN
,NAN
,NAN
,3.0,NAN
,NAN
,
16 NAN
,3.0,1.0,NAN
,NAN
,NAN
,NAN
,NAN
,1.0,NAN
,
17 NAN
,NAN
,NAN
,NAN
,2.0,3.0,NAN
,NAN
,NAN
,1.0,
18 NAN
,1.0,NAN
,NAN
,3.0,NAN
,1.0,NAN
,NAN
,NAN
,
19 NAN
,NAN
,NAN
,1.0,NAN
,NAN
,NAN
,1.0,NAN
,NAN
23 distsOut
= dijkstra_core(distsIn
, 0, 10);
24 //as by-hand computed, distances should be as follow
25 double shouldOutput0
[10] = {0.0,2.0,5.0,3.0,6.0,1.0,4.0,4.0,3.0,4.0};
26 ASSERT_TRUE(checkEqualV(shouldOutput0
, distsOut
, n
));
29 distsOut
= dijkstra_core(distsIn
, 7, 10);
30 //as by-hand computed, distances should be as follow
31 double shouldOutput7
[10] = {4.0,4.0,7.0,2.0,2.0,3.0,6.0,0.0,5.0,1.0};
32 ASSERT_TRUE(checkEqualV(shouldOutput7
, distsOut
, n
));
36 //custom graph 2 (connected!)
40 // same as graph 1 above, but link between 1 and 5 is now 4.0 instead of 1.0
43 NAN
,4.0,6.0,3.0,NAN
,1.0,NAN
,NAN
,NAN
,NAN
,
44 4.0,NAN
,NAN
,5.0,NAN
,4.0,3.0,NAN
,1.0,NAN
,
45 6.0,NAN
,NAN
,NAN
,NAN
,7.0,1.0,NAN
,NAN
,NAN
,
46 3.0,5.0,NAN
,NAN
,4.0,NAN
,NAN
,NAN
,NAN
,1.0,
47 NAN
,NAN
,NAN
,4.0,NAN
,NAN
,NAN
,2.0,3.0,NAN
,
48 1.0,4.0,7.0,NAN
,NAN
,NAN
,NAN
,3.0,NAN
,NAN
,
49 NAN
,3.0,1.0,NAN
,NAN
,NAN
,NAN
,NAN
,1.0,NAN
,
50 NAN
,NAN
,NAN
,NAN
,2.0,3.0,NAN
,NAN
,NAN
,1.0,
51 NAN
,1.0,NAN
,NAN
,3.0,NAN
,1.0,NAN
,NAN
,NAN
,
52 NAN
,NAN
,NAN
,1.0,NAN
,NAN
,NAN
,1.0,NAN
,NAN
56 distsOut
= dijkstra_core(distsIn
, 0, 10);
57 //as by-hand computed, distances should be as follow
58 double shouldOutput0
[10] = {0.0,4.0,6.0,3.0,6.0,1.0,6.0,4.0,5.0,4.0};
59 ASSERT_TRUE(checkEqualV(shouldOutput0
, distsOut
, n
));
62 distsOut
= dijkstra_core(distsIn
, 7, 10);
63 //as by-hand computed, distances should be as follow
64 double shouldOutput7
[10] = {4.0,6.0,7.0,2.0,2.0,3.0,6.0,0.0,5.0,1.0};
65 ASSERT_TRUE(checkEqualV(shouldOutput7
, distsOut
, n
));