-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.js
69 lines (68 loc) · 1.47 KB
/
test.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
//Test case script for proper debugging
const roll = require('./rolls.js');
/*
Basic case format
in: String given to parseRoll()
des: Description of input
pass: Bool on whether the output should return rolldata or null
(Pretty hard to predict the out value of a RNG machine)
*/
var cases = [
{
in: '1d20',
des: 'Single roll',
pass: true
},
{
in: '1d20+1-1',
des: 'Single roll with maths',
pass: true
},
{
in: '1d0',
des: 'Rolling a d0',
pass: false
},
{
in: '0d20',
des: 'Rolling 0 dice',
pass: false
},
{
in: '10+5-15',
des: 'Maths adding to 0',
pass: true
},
{
in: '64d128',
des: 'Very big roll',
pass: true
},
{
in: '1d20+one',
des: 'Invalid string',
pass: false
},
{
in: '1dice',
des: 'Invalid dice',
pass: false
}
];
console.log('Sterting Test...');
for (var i = 0; i < cases.length; i++) {
var testcase = cases[i],
result = null;
try {
result = roll.parse(testcase.in);
} catch(e) {
console.error(`${testcase.des}:\tERROR!\n${e}`);
continue
}
if (Boolean(result) === testcase.pass) {
console.log(`${testcase.des}:\tPASS\nReturns: ${result}`);
} else {
console.log(`${testcase.des}:\tFAIL\nReturns: ${result}`);
}
}
console.log('End of test...');