-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.js
294 lines (265 loc) · 11.5 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
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
var range = require('./index')
, Range = range.Range;
/*
'0..1' -> [0,1] // inclusive
'0...1' -> [0] // exclusive
'0-1000' -> [0,1,2,3,....,10000] // inclusive
'-1..-5' -> [-1,-2,-3,-4,-5]
'-5..-1' -> [] // range going the wrong way
'a-z' -> ['a','b','c'...,'z'] // alphabet too
*/
describe('range',function(){
describe('integers',function(){
it('0..1',function(){
range('0..1').should.be.an.instanceof(Range)
range('0..1').should.have.property('inclusive',true)
range('0..1').should.have.property('exclusive',false)
range('0..1').values.should.include(0)
range('0..1').values.should.include(1)
range('0..1').values.should.not.include(-1)
range('0..1').values.should.not.include(1.5)
range('0..1').values.should.not.include(2)
range('0..1').values.should.not.include('0')
range('0..1').values.should.not.include('1')
})
it('10..0',function(){
range('10..0').should.be.an.instanceof(Range)
range('10..0').should.have.property('inclusive',true)
range('10..0').should.have.property('exclusive',false)
range('10..0').values.should.include(0)
range('10..0').values.should.include(2)
range('10..0').values.should.include(10)
range('10..0').values.should.not.include(-1)
range('10..0').values.should.not.include(1.5)
range('10..0').values.should.not.include('0')
range('10..0').values.should.not.include('1')
})
it('0...1',function(){
range('0...1').should.be.an.instanceof(Range)
range('0...1').should.have.property('inclusive',false)
range('0...1').should.have.property('exclusive',true)
range('0...1').values.should.include(0)
range('0...1').values.should.not.include(1)
range('0...1').values.should.not.include(-1)
range('0...1').values.should.not.include(1.5)
range('0...1').values.should.not.include(2)
range('0...1').values.should.not.include('0')
range('0...1').values.should.not.include('1')
})
it('0-1',function(){
range('0-1').should.be.an.instanceof(Range)
range('0-1').should.have.property('inclusive',true)
range('0-1').should.have.property('exclusive',false)
range('0-1').values.should.include(0)
range('0-1').values.should.include(1)
range('0-1').values.should.not.include(-1)
range('0-1').values.should.not.include(1.5)
range('0-1').values.should.not.include(2)
range('0-1').values.should.not.include('0')
range('0-1').values.should.not.include('1')
})
it('0..-1',function(){
range('0..-1').should.be.an.instanceof(Range)
range('0..-1').should.have.property('inclusive',true)
range('0..-1').should.have.property('exclusive',false)
range('0..-1').values.should.include(0)
range('0..-1').values.should.include(-1)
range('0..-1').values.should.not.include(1)
range('0..-1').values.should.not.include(1.5)
range('0..-1').values.should.not.include(2)
range('0..-1').values.should.not.include('0')
range('0..-1').values.should.not.include('1')
})
it.skip('0...-10',function(){
range('0...-10').should.be.an.instanceof(Range)
range('0...-10').should.have.property('inclusive',false)
range('0...-10').should.have.property('exclusive',true)
range('0...-10').values.should.include(0)
range('0...-10').values.should.include(-1)
range('0...-10').values.should.not.include(-10)
range('0...-10').values.should.not.include(1)
range('0...-10').values.should.not.include(1.5)
range('0...-10').values.should.not.include(2)
range('0...-10').values.should.not.include('0')
range('0...-10').values.should.not.include('1')
})
})
describe('floats',function(){
it('0.1..1.0',function(){
range('0.1..1.0').should.be.an.instanceof(Range)
range('0.1..1.0').should.have.property('inclusive',true)
range('0.1..1.0').should.have.property('exclusive',false)
range('0.1..1.0').values.should.include(.1)
range('0.1..1.0').values.should.include(.5)
range('0.1..1.0').values.should.include(1)
range('0.1..1.0').values.should.not.include(0)
range('0.1..1.0').values.should.not.include(0.01)
range('0.1..1.0').values.should.not.include(0.15)
range('0.1..1.0').values.should.not.include(-1)
range('0.1..1.0').values.should.not.include(1.5)
range('0.1..1.0').values.should.not.include(2)
range('0.1..1.0').values.should.not.include('0')
range('0.1..1.0').values.should.not.include('1')
})
it.skip('-0.001...-1.0',function(){
range('-0.001...-1.0').should.be.an.instanceof(Range)
range('-0.001...-1.0').should.have.property('inclusive',false)
range('-0.001...-1.0').should.have.property('exclusive',true)
range('-0.001...-1.0').values.should.include(-0.001)
range('-0.001...-1.0').values.should.include(-0.002)
range('-0.001...-1.0').values.should.include(-0.01)
range('-0.001...-1.0').values.should.include(-0.15)
range('-0.001...-1.0').values.should.include(-0.9)
range('-0.001...-1.0').values.should.not.include(1)
range('-0.001...-1.0').values.should.not.include(0)
range('-0.001...-1.0').values.should.not.include(0.001)
range('-0.001...-1.0').values.should.not.include(-1)
range('-0.001...-1.0').values.should.not.include(1.5)
range('-0.001...-1.0').values.should.not.include(2)
range('-0.001...-1.0').values.should.not.include('0')
range('-0.001...-1.0').values.should.not.include('1')
})
it('0.001...1.0',function(){
range('0.001...1.0').should.be.an.instanceof(Range)
range('0.001...1.0').should.have.property('inclusive',false)
range('0.001...1.0').should.have.property('exclusive',true)
range('0.001...1.0').values.should.include(0.001)
range('0.001...1.0').values.should.include(0.01)
range('0.001...1.0').values.should.include(0.15)
range('0.001...1.0').values.should.include(0.9)
range('0.001...1.0').values.should.not.include(1)
range('0.001...1.0').values.should.not.include(0)
range('0.001...1.0').values.should.not.include(-1)
range('0.001...1.0').values.should.not.include(1.5)
range('0.001...1.0').values.should.not.include(2)
range('0.001...1.0').values.should.not.include('0')
range('0.001...1.0').values.should.not.include('1')
})
it('0.1-15',function(){
range('0.1-15').should.be.an.instanceof(Range)
range('0.1-15').should.have.property('inclusive',true)
range('0.1-15').should.have.property('exclusive',false)
range('0.1-15').values.should.include(0.9)
range('0.1-15').values.should.include(1)
range('0.1-15').values.should.include(1.5)
range('0.1-15').values.should.include(2)
range('0.1-15').values.should.include(15)
range('0.1-15').values.should.not.include(0.001)
range('0.1-15').values.should.not.include(0.01)
range('0.1-15').values.should.not.include(0)
range('0.1-15').values.should.not.include(0.15)
range('0.1-15').values.should.not.include(-1)
range('0.1-15').values.should.not.include('0')
range('0.1-15').values.should.not.include('1')
})
})
describe('alphabetic',function(){
it('a..z',function(){
range('a..z').should.be.an.instanceof(Range)
range('a..z').should.have.property('inclusive',true)
range('a..z').should.have.property('exclusive',false)
range('a..z').values.should.include('a')
range('a..z').values.should.include('c')
range('a..z').values.should.include('z')
range('a..z').values.should.not.include(-1)
range('a..z').values.should.not.include(1.5)
range('a..z').values.should.not.include(2)
range('a..z').values.should.not.include('0')
range('a..z').values.should.not.include('1')
range('a..z').values.should.not.include('A')
range('a..z').values.should.not.include('Z')
})
it('a...z',function(){
range('a...z').should.be.an.instanceof(Range)
range('a...z').should.have.property('inclusive',false)
range('a...z').should.have.property('exclusive',true)
range('a...z').values.should.include('a')
range('a...z').values.should.include('c')
range('a...z').values.should.not.include('z')
range('a...z').values.should.not.include(-1)
range('a...z').values.should.not.include(1.5)
range('a...z').values.should.not.include(2)
range('a...z').values.should.not.include('0')
range('a...z').values.should.not.include('1')
range('a...z').values.should.not.include('A')
range('a...z').values.should.not.include('Z')
})
it('a-z',function(){
range('a-z').should.be.an.instanceof(Range)
range('a-z').should.have.property('inclusive',true)
range('a-z').should.have.property('exclusive',false)
range('a-z').values.should.include('a')
range('a-z').values.should.include('c')
range('a-z').values.should.include('z')
range('a-z').values.should.not.include(-1)
range('a-z').values.should.not.include(1.5)
range('a-z').values.should.not.include(2)
range('a-z').values.should.not.include('0')
range('a-z').values.should.not.include('1')
range('a-z').values.should.not.include('A')
range('a-z').values.should.not.include('Z')
})
it('z-a',function(){
range('z-a').should.be.an.instanceof(Range)
range('z-a').should.have.property('inclusive',true)
range('z-a').should.have.property('exclusive',false)
range('z-a').values.should.include('a')
range('z-a').values.should.include('c')
range('z-a').values.should.include('z')
range('z-a').values.should.not.include(-1)
range('z-a').values.should.not.include(1.5)
range('z-a').values.should.not.include(2)
range('z-a').values.should.not.include('0')
range('z-a').values.should.not.include('1')
range('z-a').values.should.not.include('A')
range('z-a').values.should.not.include('Z')
})
it('A-Z',function(){
range('A-Z').should.be.an.instanceof(Range)
range('A-Z').should.have.property('inclusive',true)
range('A-Z').should.have.property('exclusive',false)
range('A-Z').values.should.include('A')
range('A-Z').values.should.include('C')
range('A-Z').values.should.include('Z')
range('A-Z').values.should.not.include(-1)
range('A-Z').values.should.not.include(1.5)
range('A-Z').values.should.not.include(2)
range('A-Z').values.should.not.include('0')
range('A-Z').values.should.not.include('1')
range('A-Z').values.should.not.include('a')
range('A-Z').values.should.not.include('z')
})
})
describe('toString',function(){
it('0..1',function(){
range('0..1').toString().should.equal('0..1')
})
it('10...1',function(){
range('10...1').toString().should.equal('10...1')
})
it('A-Z',function(){
range('A-Z').toString().should.equal('A..Z')
})
it('z-a',function(){
range('z-a').toString().should.equal('z..a')
})
it('0.1-15',function(){
range('0.1-15').toString().should.equal('0.1..15')
})
it('0..-1',function(){
range('0..-1').toString().should.equal('0..-1')
})
it('0.001...1.0',function(){
range('0.001...1.0').toString().should.equal('0.001...1.0')
})
it('-0.001...-1.0',function(){
range('-0.001...-1.0').toString().should.equal('-0.001...-1.0')
})
})
describe('valueOf',function(){
it('should return a string',function(){
(''+range('0..1')).should.equal('0..1')
range('0..1').should.not.equal('0..1')
})
})
})