react / wstein / node_modules / browserify / node_modules / insert-module-globals / node_modules / combine-source-map / node_modules / source-map / test / source-map / test-array-set.js
80559 views/* -*- Mode: js; js-indent-level: 2; -*- */1/*2* Copyright 2011 Mozilla Foundation and contributors3* Licensed under the New BSD license. See LICENSE or:4* http://opensource.org/licenses/BSD-3-Clause5*/6if (typeof define !== 'function') {7var define = require('amdefine')(module, require);8}9define(function (require, exports, module) {1011var ArraySet = require('../../lib/source-map/array-set').ArraySet;1213function makeTestSet() {14var set = new ArraySet();15for (var i = 0; i < 100; i++) {16set.add(String(i));17}18return set;19}2021exports['test .has() membership'] = function (assert, util) {22var set = makeTestSet();23for (var i = 0; i < 100; i++) {24assert.ok(set.has(String(i)));25}26};2728exports['test .indexOf() elements'] = function (assert, util) {29var set = makeTestSet();30for (var i = 0; i < 100; i++) {31assert.strictEqual(set.indexOf(String(i)), i);32}33};3435exports['test .at() indexing'] = function (assert, util) {36var set = makeTestSet();37for (var i = 0; i < 100; i++) {38assert.strictEqual(set.at(i), String(i));39}40};4142exports['test creating from an array'] = function (assert, util) {43var set = ArraySet.fromArray(['foo', 'bar', 'baz', 'quux', 'hasOwnProperty']);4445assert.ok(set.has('foo'));46assert.ok(set.has('bar'));47assert.ok(set.has('baz'));48assert.ok(set.has('quux'));49assert.ok(set.has('hasOwnProperty'));5051assert.strictEqual(set.indexOf('foo'), 0);52assert.strictEqual(set.indexOf('bar'), 1);53assert.strictEqual(set.indexOf('baz'), 2);54assert.strictEqual(set.indexOf('quux'), 3);5556assert.strictEqual(set.at(0), 'foo');57assert.strictEqual(set.at(1), 'bar');58assert.strictEqual(set.at(2), 'baz');59assert.strictEqual(set.at(3), 'quux');60};6162exports['test that you can add __proto__; see github issue #30'] = function (assert, util) {63var set = new ArraySet();64set.add('__proto__');65assert.ok(set.has('__proto__'));66assert.strictEqual(set.at(0), '__proto__');67assert.strictEqual(set.indexOf('__proto__'), 0);68};6970exports['test .fromArray() with duplicates'] = function (assert, util) {71var set = ArraySet.fromArray(['foo', 'foo']);72assert.ok(set.has('foo'));73assert.strictEqual(set.at(0), 'foo');74assert.strictEqual(set.indexOf('foo'), 0);75assert.strictEqual(set.toArray().length, 1);7677set = ArraySet.fromArray(['foo', 'foo'], true);78assert.ok(set.has('foo'));79assert.strictEqual(set.at(0), 'foo');80assert.strictEqual(set.at(1), 'foo');81assert.strictEqual(set.indexOf('foo'), 0);82assert.strictEqual(set.toArray().length, 2);83};8485exports['test .add() with duplicates'] = function (assert, util) {86var set = new ArraySet();87set.add('foo');8889set.add('foo');90assert.ok(set.has('foo'));91assert.strictEqual(set.at(0), 'foo');92assert.strictEqual(set.indexOf('foo'), 0);93assert.strictEqual(set.toArray().length, 1);9495set.add('foo', true);96assert.ok(set.has('foo'));97assert.strictEqual(set.at(0), 'foo');98assert.strictEqual(set.at(1), 'foo');99assert.strictEqual(set.indexOf('foo'), 0);100assert.strictEqual(set.toArray().length, 2);101};102103});104105106