UNPKG

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