range-test.js
1.78 KB
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
'use strict';
var main = require('../package.json').main;
var schedule = require('../' + main);
module.exports = {
"step defaults to 1": function(test) {
var range = new schedule.Range(2, 6);
test.equals(1, range.step);
test.done();
},
"when step is 1": {
"setUp": function(done) {
this.range = new schedule.Range(2, 6, 1);
done();
},
"includes start value": function(test) {
test.ok(this.range.contains(2));
test.done();
},
"includes end value": function(test) {
test.ok(this.range.contains(6));
test.done();
},
"includes value between start and end": function(test) {
test.ok(this.range.contains(3));
test.done();
},
"excludes values outside of start and end": function(test) {
test.ok(!this.range.contains(1));
test.ok(!this.range.contains(7));
test.done();
}
},
"when step > 1": {
"setUp": function(done) {
this.range = new schedule.Range(2, 6, 2);
done();
},
"includes start value": function(test) {
test.ok(this.range.contains(2));
test.done();
},
"excludes end value": function(test) {
test.ok(!this.range.contains(6));
test.done();
},
"includes value between start and end that is evenly divisible by step": function(test) {
test.ok(this.range.contains(4));
test.done();
},
"excludes value between start and end that is not evenly divisible by step": function(test) {
test.ok(!this.range.contains(5));
test.done();
},
"excludes values outside of start and end": function(test) {
test.ok(!this.range.contains(1));
test.ok(!this.range.contains(7));
test.done();
}
}
};