-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcases.js
121 lines (89 loc) · 3.09 KB
/
cases.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/*
* This file contains example test cases for pathfinding algorithms.
* Used by both the submission itself and the unit tests.
*/
const exactRoute = require("./src/exact-route");
const shortestRoute = require("./src/shortest-route");
const possibleRoutes = require("./src/possible-routes");
const resultDisplay = require("./src/result-display");
const routeCriteria = require("./src/common/route-criteria");
const numSigns = require("./src/common/enum/num-signs");
function runTestCase1(givenInputGraph)
{
var actualValue = exactRoute.getDistance(givenInputGraph, "ABC");
return setOutputObject(9, actualValue);
}
function runTestCase2(givenInputGraph)
{
var actualValue = exactRoute.getDistance(givenInputGraph, "AD");
return setOutputObject(5, actualValue);
}
function runTestCase3(givenInputGraph)
{
var actualValue = exactRoute.getDistance(givenInputGraph, "ADC");
return setOutputObject(13, actualValue);
}
function runTestCase4(givenInputGraph)
{
var actualValue = exactRoute.getDistance(givenInputGraph, "AEBCD");
return setOutputObject(22, actualValue);
}
function runTestCase5(givenInputGraph)
{
var actualValue = exactRoute.getDistance(givenInputGraph, "AED");
return setOutputObject("NO SUCH ROUTE", actualValue);
}
function runTestCase6(givenInputGraph)
{
var routeStart = routeCriteria.defineStartNode("C");
var routeEnd = routeCriteria.defineEndNode("C");
var routeStopCount = routeCriteria.defineStopCount(3, numSigns.LESS_EQUAL);
var searchCriteria = [routeStart, routeEnd, routeStopCount];
var actualValue = possibleRoutes.findRoutes(givenInputGraph, searchCriteria);
return setOutputObject(2, actualValue.length);
}
function runTestCase7(givenInputGraph)
{
var routeStart = routeCriteria.defineStartNode("A");
var routeEnd = routeCriteria.defineEndNode("C");
var routeStopCount = routeCriteria.defineStopCount(4, numSigns.EQUAL);
var searchCriteria = [routeStart, routeEnd, routeStopCount];
var actualValue = possibleRoutes.findRoutes(givenInputGraph, searchCriteria);
return setOutputObject(3, actualValue.length);
}
function runTestCase8(givenInputGraph)
{
var actualValue = shortestRoute.findRoute(givenInputGraph, "A", "C");
return setOutputObject(9, actualValue);
}
function runTestCase9(givenInputGraph)
{
var actualValue = shortestRoute.findRoute(givenInputGraph, "B", "B");
return setOutputObject(9, actualValue);
}
function runTestCase10(givenInputGraph)
{
var routeStart = routeCriteria.defineStartNode("C");
var routeEnd = routeCriteria.defineEndNode("C");
var routeDist = routeCriteria.defineTotalDistance(30, numSigns.LESS);
var searchCriteria = [routeStart, routeEnd, routeDist];
var actualValue = possibleRoutes.findRoutes(givenInputGraph, searchCriteria);
return setOutputObject(7, actualValue.length);
}
function setOutputObject(vExp, vAct)
{
return {"expected": vExp, "actual": vAct};
}
module.exports =
{
runCase1: runTestCase1,
runCase2: runTestCase2,
runCase3: runTestCase3,
runCase4: runTestCase4,
runCase5: runTestCase5,
runCase6: runTestCase6,
runCase7: runTestCase7,
runCase8: runTestCase8,
runCase9: runTestCase9,
runCase10: runTestCase10
};