Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80559 views
1
/*
2
* WARNING!
3
*
4
* Do not edit this file directly, it is built from the sources at
5
* https://github.com/mozilla/source-map/
6
*/
7
8
Components.utils.import('resource://test/Utils.jsm');
9
/* -*- Mode: js; js-indent-level: 2; -*- */
10
/*
11
* Copyright 2011 Mozilla Foundation and contributors
12
* Licensed under the New BSD license. See LICENSE or:
13
* http://opensource.org/licenses/BSD-3-Clause
14
*/
15
define("test/source-map/test-array-set", ["require", "exports", "module"], function (require, exports, module) {
16
17
var ArraySet = require('source-map/array-set').ArraySet;
18
19
function makeTestSet() {
20
var set = new ArraySet();
21
for (var i = 0; i < 100; i++) {
22
set.add(String(i));
23
}
24
return set;
25
}
26
27
exports['test .has() membership'] = function (assert, util) {
28
var set = makeTestSet();
29
for (var i = 0; i < 100; i++) {
30
assert.ok(set.has(String(i)));
31
}
32
};
33
34
exports['test .indexOf() elements'] = function (assert, util) {
35
var set = makeTestSet();
36
for (var i = 0; i < 100; i++) {
37
assert.strictEqual(set.indexOf(String(i)), i);
38
}
39
};
40
41
exports['test .at() indexing'] = function (assert, util) {
42
var set = makeTestSet();
43
for (var i = 0; i < 100; i++) {
44
assert.strictEqual(set.at(i), String(i));
45
}
46
};
47
48
exports['test creating from an array'] = function (assert, util) {
49
var set = ArraySet.fromArray(['foo', 'bar', 'baz', 'quux', 'hasOwnProperty']);
50
51
assert.ok(set.has('foo'));
52
assert.ok(set.has('bar'));
53
assert.ok(set.has('baz'));
54
assert.ok(set.has('quux'));
55
assert.ok(set.has('hasOwnProperty'));
56
57
assert.strictEqual(set.indexOf('foo'), 0);
58
assert.strictEqual(set.indexOf('bar'), 1);
59
assert.strictEqual(set.indexOf('baz'), 2);
60
assert.strictEqual(set.indexOf('quux'), 3);
61
62
assert.strictEqual(set.at(0), 'foo');
63
assert.strictEqual(set.at(1), 'bar');
64
assert.strictEqual(set.at(2), 'baz');
65
assert.strictEqual(set.at(3), 'quux');
66
};
67
68
exports['test that you can add __proto__; see github issue #30'] = function (assert, util) {
69
var set = new ArraySet();
70
set.add('__proto__');
71
assert.ok(set.has('__proto__'));
72
assert.strictEqual(set.at(0), '__proto__');
73
assert.strictEqual(set.indexOf('__proto__'), 0);
74
};
75
76
exports['test .fromArray() with duplicates'] = function (assert, util) {
77
var set = ArraySet.fromArray(['foo', 'foo']);
78
assert.ok(set.has('foo'));
79
assert.strictEqual(set.at(0), 'foo');
80
assert.strictEqual(set.indexOf('foo'), 0);
81
assert.strictEqual(set.toArray().length, 1);
82
83
set = ArraySet.fromArray(['foo', 'foo'], true);
84
assert.ok(set.has('foo'));
85
assert.strictEqual(set.at(0), 'foo');
86
assert.strictEqual(set.at(1), 'foo');
87
assert.strictEqual(set.indexOf('foo'), 0);
88
assert.strictEqual(set.toArray().length, 2);
89
};
90
91
exports['test .add() with duplicates'] = function (assert, util) {
92
var set = new ArraySet();
93
set.add('foo');
94
95
set.add('foo');
96
assert.ok(set.has('foo'));
97
assert.strictEqual(set.at(0), 'foo');
98
assert.strictEqual(set.indexOf('foo'), 0);
99
assert.strictEqual(set.toArray().length, 1);
100
101
set.add('foo', true);
102
assert.ok(set.has('foo'));
103
assert.strictEqual(set.at(0), 'foo');
104
assert.strictEqual(set.at(1), 'foo');
105
assert.strictEqual(set.indexOf('foo'), 0);
106
assert.strictEqual(set.toArray().length, 2);
107
};
108
109
});
110
function run_test() {
111
runSourceMapTests('test/source-map/test-array-set', do_throw);
112
}
113
114