UNPKG

11.3 kBJavaScriptView Raw
1'use strict';
2
3var tape = require('../');
4var tap = require('tap');
5var concat = require('concat-stream');
6
7var stripFullStack = require('./common').stripFullStack;
8
9tap.test('edge cases', function (tt) {
10 tt.plan(1);
11
12 var test = tape.createHarness();
13 test.createStream().pipe(concat(function (body) {
14 tt.same(stripFullStack(body.toString('utf8')), [
15 'TAP version 13',
16 '# zeroes',
17 'not ok 1 0 equal to -0',
18 ' ---',
19 ' operator: equal',
20 ' expected: |-',
21 ' -0',
22 ' actual: |-',
23 ' 0',
24 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
25 ' stack: |-',
26 ' Error: 0 equal to -0',
27 ' [... stack stripped ...]',
28 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
29 ' [... stack stripped ...]',
30 ' ...',
31 'not ok 2 -0 equal to 0',
32 ' ---',
33 ' operator: equal',
34 ' expected: |-',
35 ' 0',
36 ' actual: |-',
37 ' -0',
38 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
39 ' stack: |-',
40 ' Error: -0 equal to 0',
41 ' [... stack stripped ...]',
42 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
43 ' [... stack stripped ...]',
44 ' ...',
45 'ok 3 0 notEqual to -0',
46 'ok 4 -0 notEqual to 0',
47 'ok 5 0 looseEqual to -0',
48 'ok 6 -0 looseEqual to 0',
49 'not ok 7 0 notLooseEqual to -0',
50 ' ---',
51 ' operator: notLooseEqual',
52 ' expected: |-',
53 ' -0',
54 ' actual: |-',
55 ' 0',
56 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
57 ' stack: |-',
58 ' Error: 0 notLooseEqual to -0',
59 ' [... stack stripped ...]',
60 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
61 ' [... stack stripped ...]',
62 ' ...',
63 'not ok 8 -0 notLooseEqual to 0',
64 ' ---',
65 ' operator: notLooseEqual',
66 ' expected: |-',
67 ' 0',
68 ' actual: |-',
69 ' -0',
70 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
71 ' stack: |-',
72 ' Error: -0 notLooseEqual to 0',
73 ' [... stack stripped ...]',
74 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
75 ' [... stack stripped ...]',
76 ' ...',
77 'not ok 9 0 strictEqual to -0',
78 ' ---',
79 ' operator: equal',
80 ' expected: |-',
81 ' -0',
82 ' actual: |-',
83 ' 0',
84 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
85 ' stack: |-',
86 ' Error: 0 strictEqual to -0',
87 ' [... stack stripped ...]',
88 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
89 ' [... stack stripped ...]',
90 ' ...',
91 'not ok 10 -0 strictEqual to 0',
92 ' ---',
93 ' operator: equal',
94 ' expected: |-',
95 ' 0',
96 ' actual: |-',
97 ' -0',
98 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
99 ' stack: |-',
100 ' Error: -0 strictEqual to 0',
101 ' [... stack stripped ...]',
102 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
103 ' [... stack stripped ...]',
104 ' ...',
105 'ok 11 0 notStrictEqual to -0',
106 'ok 12 -0 notStrictEqual to 0',
107 'ok 13 0 deepLooseEqual to -0',
108 'ok 14 -0 deepLooseEqual to 0',
109 'not ok 15 0 notDeepLooseEqual to -0',
110 ' ---',
111 ' operator: notDeepLooseEqual',
112 ' expected: |-',
113 ' -0',
114 ' actual: |-',
115 ' 0',
116 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
117 ' stack: |-',
118 ' Error: 0 notDeepLooseEqual to -0',
119 ' [... stack stripped ...]',
120 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
121 ' [... stack stripped ...]',
122 ' ...',
123 'not ok 16 -0 notDeepLooseEqual to 0',
124 ' ---',
125 ' operator: notDeepLooseEqual',
126 ' expected: |-',
127 ' 0',
128 ' actual: |-',
129 ' -0',
130 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
131 ' stack: |-',
132 ' Error: -0 notDeepLooseEqual to 0',
133 ' [... stack stripped ...]',
134 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
135 ' [... stack stripped ...]',
136 ' ...',
137 'not ok 17 0 deepEqual to -0',
138 ' ---',
139 ' operator: deepEqual',
140 ' expected: |-',
141 ' -0',
142 ' actual: |-',
143 ' 0',
144 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
145 ' stack: |-',
146 ' Error: 0 deepEqual to -0',
147 ' [... stack stripped ...]',
148 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
149 ' [... stack stripped ...]',
150 ' ...',
151 'not ok 18 -0 deepEqual to 0',
152 ' ---',
153 ' operator: deepEqual',
154 ' expected: |-',
155 ' 0',
156 ' actual: |-',
157 ' -0',
158 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
159 ' stack: |-',
160 ' Error: -0 deepEqual to 0',
161 ' [... stack stripped ...]',
162 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
163 ' [... stack stripped ...]',
164 ' ...',
165 'ok 19 0 notDeepEqual to -0',
166 'ok 20 -0 notDeepEqual to 0',
167 '# NaNs',
168 'ok 21 NaN equal to NaN',
169 'not ok 22 NaN notEqual to NaN',
170 ' ---',
171 ' operator: notEqual',
172 ' expected: NaN',
173 ' actual: NaN',
174 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
175 ' stack: |-',
176 ' Error: NaN notEqual to NaN',
177 ' [... stack stripped ...]',
178 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
179 ' [... stack stripped ...]',
180 ' ...',
181 'not ok 23 NaN looseEqual to NaN',
182 ' ---',
183 ' operator: looseEqual',
184 ' expected: NaN',
185 ' actual: NaN',
186 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
187 ' stack: |-',
188 ' Error: NaN looseEqual to NaN',
189 ' [... stack stripped ...]',
190 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
191 ' [... stack stripped ...]',
192 ' ...',
193 'ok 24 NaN notLooseEqual to NaN',
194 'ok 25 NaN strictEqual to NaN',
195 'not ok 26 NaN notStrictEqual to NaN',
196 ' ---',
197 ' operator: notEqual',
198 ' expected: NaN',
199 ' actual: NaN',
200 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
201 ' stack: |-',
202 ' Error: NaN notStrictEqual to NaN',
203 ' [... stack stripped ...]',
204 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
205 ' [... stack stripped ...]',
206 ' ...',
207 'not ok 27 NaN deepLooseEqual to NaN',
208 ' ---',
209 ' operator: deepLooseEqual',
210 ' expected: NaN',
211 ' actual: NaN',
212 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
213 ' stack: |-',
214 ' Error: NaN deepLooseEqual to NaN',
215 ' [... stack stripped ...]',
216 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
217 ' [... stack stripped ...]',
218 ' ...',
219 'ok 28 NaN notDeepLooseEqual to NaN',
220 'ok 29 NaN deepEqual to NaN',
221 'not ok 30 NaN notDeepEqual to NaN',
222 ' ---',
223 ' operator: notDeepEqual',
224 ' expected: NaN',
225 ' actual: NaN',
226 ' at: Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
227 ' stack: |-',
228 ' Error: NaN notDeepEqual to NaN',
229 ' [... stack stripped ...]',
230 ' at Test.<anonymous> ($TEST/edge-cases.js:$LINE:$COL)',
231 ' [... stack stripped ...]',
232 ' ...',
233 '',
234 '1..30',
235 '# tests 30',
236 '# pass 15',
237 '# fail 15',
238 ''
239 ]);
240 }));
241
242 test('zeroes', function (t) {
243 t.equal(0, -0, '0 equal to -0');
244 t.equal(-0, 0, '-0 equal to 0');
245 t.notEqual(0, -0, '0 notEqual to -0');
246 t.notEqual(-0, 0, '-0 notEqual to 0');
247
248 t.looseEqual(0, -0, '0 looseEqual to -0');
249 t.looseEqual(-0, 0, '-0 looseEqual to 0');
250 t.notLooseEqual(0, -0, '0 notLooseEqual to -0');
251 t.notLooseEqual(-0, 0, '-0 notLooseEqual to 0');
252
253 t.strictEqual(0, -0, '0 strictEqual to -0');
254 t.strictEqual(-0, 0, '-0 strictEqual to 0');
255 t.notStrictEqual(0, -0, '0 notStrictEqual to -0');
256 t.notStrictEqual(-0, 0, '-0 notStrictEqual to 0');
257
258 t.deepLooseEqual(0, -0, '0 deepLooseEqual to -0');
259 t.deepLooseEqual(-0, 0, '-0 deepLooseEqual to 0');
260 t.notDeepLooseEqual(0, -0, '0 notDeepLooseEqual to -0');
261 t.notDeepLooseEqual(-0, 0, '-0 notDeepLooseEqual to 0');
262
263 t.deepEqual(0, -0, '0 deepEqual to -0');
264 t.deepEqual(-0, 0, '-0 deepEqual to 0');
265 t.notDeepEqual(0, -0, '0 notDeepEqual to -0');
266 t.notDeepEqual(-0, 0, '-0 notDeepEqual to 0');
267
268 t.end();
269 });
270
271 test('NaNs', function (t) {
272 t.equal(NaN, NaN, 'NaN equal to NaN');
273 t.notEqual(NaN, NaN, 'NaN notEqual to NaN');
274
275 t.looseEqual(NaN, NaN, 'NaN looseEqual to NaN');
276 t.notLooseEqual(NaN, NaN, 'NaN notLooseEqual to NaN');
277
278 t.strictEqual(NaN, NaN, 'NaN strictEqual to NaN');
279 t.notStrictEqual(NaN, NaN, 'NaN notStrictEqual to NaN');
280
281 t.deepLooseEqual(NaN, NaN, 'NaN deepLooseEqual to NaN');
282 t.notDeepLooseEqual(NaN, NaN, 'NaN notDeepLooseEqual to NaN');
283
284 t.deepEqual(NaN, NaN, 'NaN deepEqual to NaN');
285 t.notDeepEqual(NaN, NaN, 'NaN notDeepEqual to NaN');
286
287 t.end();
288 });
289});