aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/structs/set_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/structs/set_test.html')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/structs/set_test.html581
1 files changed, 0 insertions, 581 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/structs/set_test.html b/contexts/data/lib/closure-library/closure/goog/structs/set_test.html
deleted file mode 100644
index df7d630..0000000
--- a/contexts/data/lib/closure-library/closure/goog/structs/set_test.html
+++ /dev/null
@@ -1,581 +0,0 @@
-<!DOCTYPE html>
-<html>
-<!--
-Copyright 2006 The Closure Library Authors. All Rights Reserved.
-
-Use of this source code is governed by the Apache License, Version 2.0.
-See the COPYING file for details.
--->
-<head>
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<title>Closure Unit Tests - goog.structs.Set</title>
-<script src="../base.js"></script>
-<script>
- goog.require('goog.iter');
- goog.require('goog.structs');
- goog.require('goog.structs.Set');
- goog.require('goog.testing.jsunit');
-</script>
-</head>
-<body>
-<script>
-
-var Set = goog.structs.Set;
-
-function stringifySet(s) {
- return goog.structs.getValues(s).join('');
-}
-
-function testGetCount() {
- var s = new Set;
- var a = new String('a'); s.add(a);
- var b = new String('b'); s.add(b);
- var c = new String('c'); s.add(c);
- assertEquals('count, should be 3', s.getCount(), 3);
- var d = new String('d'); s.add(d);
- assertEquals('count, should be 4', s.getCount(), 4);
- s.remove(d);
- assertEquals('count, should be 3', s.getCount(), 3);
-
- s = new Set;
- s.add('a');
- s.add('b');
- s.add('c');
- assertEquals('count, should be 3', s.getCount(), 3);
- s.add('d');
- assertEquals('count, should be 4', s.getCount(), 4);
- s.remove('d');
- assertEquals('count, should be 3', s.getCount(), 3);
-}
-
-function testGetValues() {
- var s = new Set;
- var a = new String('a'); s.add(a);
- var b = new String('b'); s.add(b);
- var c = new String('c'); s.add(c);
- var d = new String('d'); s.add(d);
- assertEquals(s.getValues().join(''), 'abcd');
-
- var s = new Set;
- s.add('a');
- s.add('b');
- s.add('c');
- s.add('d');
- assertEquals(s.getValues().join(''), 'abcd');
-}
-
-function testContains() {
- var s = new Set;
- var a = new String('a'); s.add(a);
- var b = new String('b'); s.add(b);
- var c = new String('c'); s.add(c);
- var d = new String('d'); s.add(d);
- var e = new String('e');;
-
- assertTrue("contains, Should contain 'a'", s.contains(a));
- assertFalse("contains, Should not contain 'e'", s.contains(e));
-
- s = new Set;
- s.add('a');
- s.add('b');
- s.add('c');
- s.add('d');
-
- assertTrue("contains, Should contain 'a'", s.contains('a'));
- assertFalse("contains, Should not contain 'e'", s.contains('e'));
-}
-
-function testContainsFunctionValue() {
- var s = new Set;
-
- var fn1 = function() {};
-
- assertFalse(s.contains(fn1));
- s.add(fn1);
- assertTrue(s.contains(fn1));
-
- var fn2 = function() {};
-
- assertFalse(s.contains(fn2));
- s.add(fn2);
- assertTrue(s.contains(fn2));
-
- assertEquals(s.getCount(), 2);
-}
-
-function testContainsAll() {
- var set = new Set([1, 2, 3]);
-
- assertTrue("{1, 2, 3} contains []", set.containsAll([]));
- assertTrue("{1, 2, 3} contains [1]", set.containsAll([1]));
- assertTrue("{1, 2, 3} contains [1, 1]", set.containsAll([1, 1]));
- assertTrue("{1, 2, 3} contains [3, 2, 1]", set.containsAll([3, 2, 1]));
- assertFalse("{1, 2, 3} doesn't contain [4]", set.containsAll([4]));
- assertFalse("{1, 2, 3} doesn't contain [1, 4]", set.containsAll([1, 4]));
-
- assertTrue("{1, 2, 3} contains {a: 1}", set.containsAll({a: 1}));
- assertFalse("{1, 2, 3} doesn't contain {a: 4}", set.containsAll({a: 4}));
-
- assertTrue("{1, 2, 3} contains {1}", set.containsAll(new Set([1])));
- assertFalse("{1, 2, 3} doesn't contain {4}", set.containsAll(new Set([4])));
-}
-
-function testIntersection() {
- var emptySet = new Set;
-
- assertTrue('intersection of empty set and [] should be empty',
- emptySet.intersection([]).isEmpty());
- assertIntersection('intersection of 2 empty sets should be empty',
- emptySet, new Set(), new Set());
-
- var abcdSet = new Set();
- abcdSet.add('a');
- abcdSet.add('b');
- abcdSet.add('c');
- abcdSet.add('d');
-
- assertTrue('intersection of populated set and [] should be empty',
- abcdSet.intersection([]).isEmpty());
- assertIntersection(
- 'intersection of populated set and empty set should be empty',
- abcdSet, new Set(), new Set());
-
- var bcSet = new Set(['b', 'c']);
- assertIntersection('intersection of [a,b,c,d] and [b,c]',
- abcdSet, bcSet, bcSet);
-
- var bceSet = new Set(['b', 'c', 'e']);
- assertIntersection('intersection of [a,b,c,d] and [b,c,e]',
- abcdSet, bceSet, bcSet);
-}
-
-function testDifference() {
- var emptySet = new Set;
-
- assertTrue('difference of empty set and [] should be empty',
- emptySet.difference([]).isEmpty());
- assertTrue('difference of 2 empty sets should be empty',
- emptySet.difference(new Set()).isEmpty());
-
- var abcdSet = new Set(['a', 'b', 'c', 'd']);
-
- assertTrue('difference of populated set and [] should be the populated set',
- abcdSet.difference([]).equals(abcdSet));
- assertTrue(
- 'difference of populated set and empty set should be the populated set',
- abcdSet.difference(new Set()).equals(abcdSet));
- assertTrue('difference of two identical sets should be the empty set',
- abcdSet.difference(abcdSet).equals(new Set()));
-
- var bcSet = new Set(['b', 'c']);
- assertTrue('difference of [a,b,c,d] and [b,c] shoule be [a,d]',
- abcdSet.difference(bcSet).equals(new Set(['a', 'd'])));
- assertTrue('difference of [b,c] and [a,b,c,d] should be the empty set',
- bcSet.difference(abcdSet).equals(new Set()));
-
- var xyzSet = new Set(['x', 'y', 'z']);
- assertTrue('difference of [a,b,c,d] and [x,y,z] should be the [a,b,c,d]',
- abcdSet.difference(xyzSet).equals(abcdSet));
-}
-
-/**
- * Helper function to assert intersection is commutative.
- */
-function assertIntersection(msg, set1, set2, expectedIntersection) {
- assertTrue(msg + ': set1->set2',
- set1.intersection(set2).equals(expectedIntersection));
- assertTrue(msg + ': set2->set1',
- set2.intersection(set1).equals(expectedIntersection));
-}
-
-function testRemoveAll() {
- assertRemoveAll('removeAll of empty set from empty set', [], [], []);
- assertRemoveAll('removeAll of empty set from populated set',
- ['a', 'b', 'c', 'd'], [], ['a', 'b', 'c', 'd']);
- assertRemoveAll('removeAll of [a,d] from [a,b,c,d]',
- ['a', 'b', 'c', 'd'], ['a', 'd'], ['b', 'c']);
- assertRemoveAll('removeAll of [b,c] from [a,b,c,d]',
- ['a', 'b', 'c', 'd'], ['b', 'c'], ['a', 'd']);
- assertRemoveAll('removeAll of [b,c,e] from [a,b,c,d]',
- ['a', 'b', 'c', 'd'], ['b', 'c', 'e'], ['a', 'd']);
- assertRemoveAll('removeAll of [a,b,c,d] from [a,d]',
- ['a', 'd'], ['a', 'b', 'c', 'd'], []);
- assertRemoveAll('removeAll of [a,b,c,d] from [b,c]',
- ['b', 'c'], ['a', 'b', 'c', 'd'], []);
- assertRemoveAll('removeAll of [a,b,c,d] from [b,c,e]',
- ['b', 'c', 'e'], ['a', 'b', 'c', 'd'], ['e']);
-}
-
-/**
- * Helper function to test removeAll.
- */
-function assertRemoveAll(msg, elements1, elements2, expectedResult) {
- var set1 = new Set(elements1);
- var set2 = new Set(elements2);
- set1.removeAll(set2);
-
- assertTrue(msg + ': set1 count increased after removeAll',
- elements1.length >= set1.getCount());
- assertEquals(msg + ': set2 count changed after removeAll',
- elements2.length, set2.getCount());
- assertTrue(msg + ': wrong set1 after removeAll', set1.equals(expectedResult));
- assertIntersection(msg + ': non-empty intersection after removeAll',
- set1, set2, []);
-}
-
-function testAdd() {
- var s = new Set;
- var a = new String('a');
- var b = new String('b');
- s.add(a);
- assertTrue(s.contains(a));
- s.add(b)
- assertTrue(s.contains(b));
-
- s = new Set;
- s.add('a')
- assertTrue(s.contains('a'));
- s.add('b')
- assertTrue(s.contains('b'));
- s.add(null);
- assertTrue('contains null', s.contains(null));
- assertFalse('does not contain "null"', s.contains('null'));
-}
-
-
-function testClear() {
- var s = new Set;
- var a = new String('a'); s.add(a);
- var b = new String('b'); s.add(b);
- var c = new String('c'); s.add(c);
- var d = new String('d'); s.add(d);
- s.clear();
- assertTrue('cleared so it should be empty', s.isEmpty());
- assertTrue("cleared so it should not contain 'a' key", !s.contains(a));
-
- s = new Set;
- s.add('a');
- s.add('b');
- s.add('c');
- s.add('d');
- s.clear();
- assertTrue('cleared so it should be empty', s.isEmpty());
- assertTrue("cleared so it should not contain 'a' key", !s.contains('a'));
-}
-
-
-function testAddAll() {
- var s = new Set;
- var a = new String('a');
- var b = new String('b');
- var c = new String('c');
- var d = new String('d');
- s.addAll([a, b, c, d]);
- assertTrue('addAll so it should not be empty', !s.isEmpty());
- assertTrue("addAll so it should contain 'c' key", s.contains(c));
-
- var s2 = new Set;
- s2.addAll(s);
- assertTrue('addAll so it should not be empty', !s2.isEmpty());
- assertTrue("addAll so it should contain 'c' key", s2.contains(c));
-
-
- s = new Set;
- s.addAll(['a', 'b', 'c', 'd']);
- assertTrue('addAll so it should not be empty', !s.isEmpty());
- assertTrue("addAll so it should contain 'c' key", s.contains('c'));
-
- s2 = new Set;
- s2.addAll(s);
- assertTrue('addAll so it should not be empty', !s2.isEmpty());
- assertTrue("addAll so it should contain 'c' key", s2.contains('c'));
-}
-
-
-function testConstructor() {
- var s = new Set;
- var a = new String('a'); s.add(a);
- var b = new String('b'); s.add(b);
- var c = new String('c'); s.add(c);
- var d = new String('d'); s.add(d);
- var s2 = new Set(s);
- assertFalse('constr with Set so it should not be empty', s2.isEmpty());
- assertTrue('constr with Set so it should contain c', s2.contains(c));
-
- s = new Set;
- s.add('a');
- s.add('b');
- s.add('c');
- s.add('d');
- s2 = new Set(s);
- assertFalse('constr with Set so it should not be empty', s2.isEmpty());
- assertTrue('constr with Set so it should contain c', s2.contains('c'));
-}
-
-
-function testClone() {
- var s = new Set;
- var a = new String('a'); s.add(a);
- var b = new String('b'); s.add(b);
- var c = new String('c'); s.add(c);
- var d = new String('d'); s.add(d);
-
- var s2 = s.clone();
- assertFalse('clone so it should not be empty', s2.isEmpty());
- assertTrue("clone so it should contain 'c' key", s2.contains(c));
-
- var s = new Set;
- s.add('a');
- s.add('b');
- s.add('c');
- s.add('d');
-
- s2 = s.clone();
- assertFalse('clone so it should not be empty', s2.isEmpty());
- assertTrue("clone so it should contain 'c' key", s2.contains('c'));
-}
-
-
-/**
- * Helper method for testEquals().
- * @param {Object} a First element to use in the tests.
- * @param {Object} b Second element to use in the tests.
- * @param {Object} c Third element to use in the tests.
- * @param {Object} d Fourth element to use in the tests.
- */
-function helperForTestEquals(a, b, c, d) {
- var s = new Set([a, b, c]);
-
- assertTrue("set == itself", s.equals(s));
- assertTrue("set == same set", s.equals(new Set([a, b, c])));
- assertTrue("set == its clone", s.equals(s.clone()));
- assertTrue("set == array of same elements", s.equals([a, b, c]));
- assertTrue("set == array of same elements in different order",
- s.equals([c, b, a]));
-
- assertFalse("set != empty set", s.equals(new Set));
- assertFalse("set != its subset", s.equals(new Set([a, c])));
- assertFalse("set != its superset",
- s.equals(new Set([a, b, c, d])));
- assertFalse("set != different set",
- s.equals(new Set([b, c, d])));
- assertFalse("set != its subset as array", s.equals([a, c]));
- assertFalse("set != its superset as array", s.equals([a, b, c, d]));
- assertFalse("set != different set as array", s.equals([b, c, d]));
- assertFalse("set != [a, b, c, c]", s.equals([a, b, c, c]));
- assertFalse("set != [a, b, b]", s.equals([a, b, b]));
- assertFalse("set != [a, a]", s.equals([a, a]));
-}
-
-
-function testEquals() {
- helperForTestEquals(1, 2, 3, 4);
- helperForTestEquals('a', 'b', 'c', 'd');
- helperForTestEquals(new String('a'), new String('b'),
- new String('c'), new String('d'));
-}
-
-
-/**
- * Helper method for testIsSubsetOf().
- * @param {Object} a First element to use in the tests.
- * @param {Object} b Second element to use in the tests.
- * @param {Object} c Third element to use in the tests.
- * @param {Object} d Fourth element to use in the tests.
- */
-function helperForTestIsSubsetOf(a, b, c, d) {
- var s = new Set([a, b, c]);
-
- assertTrue("set <= itself", s.isSubsetOf(s));
- assertTrue("set <= same set",
- s.isSubsetOf(new Set([a, b, c])));
- assertTrue("set <= its clone", s.isSubsetOf(s.clone()));
- assertTrue("set <= array of same elements", s.isSubsetOf([a, b, c]));
- assertTrue("set <= array of same elements in different order",
- s.equals([c, b, a]));
-
- assertTrue("set <= Set([a, b, c, d])",
- s.isSubsetOf(new Set([a, b, c, d])));
- assertTrue("set <= [a, b, c, d]", s.isSubsetOf([a, b, c, d]));
- assertTrue("set <= [a, b, c, c]", s.isSubsetOf([a, b, c, c]));
-
- assertFalse("set !<= Set([a, b])",
- s.isSubsetOf(new Set([a, b])));
- assertFalse("set !<= [a, b]", s.isSubsetOf([a, b]));
- assertFalse("set !<= Set([c, d])",
- s.isSubsetOf(new Set([c, d])));
- assertFalse("set !<= [c, d]", s.isSubsetOf([c, d]));
- assertFalse("set !<= Set([a, c, d])",
- s.isSubsetOf(new Set([a, c, d])));
- assertFalse("set !<= [a, c, d]", s.isSubsetOf([a, c, d]));
- assertFalse("set !<= [a, a, b]", s.isSubsetOf([a, a, b]));
- assertFalse("set !<= [a, a, b, b]", s.isSubsetOf([a, a, b, b]));
-}
-
-
-function testIsSubsetOf() {
- helperForTestIsSubsetOf(1, 2, 3, 4);
- helperForTestIsSubsetOf('a', 'b', 'c', 'd');
- helperForTestIsSubsetOf(new String('a'), new String('b'),
- new String('c'), new String('d'));
-}
-
-
-function testForEach() {
- var s = new Set;
- var a = new String('a'); s.add(a);
- var b = new String('b'); s.add(b);
- var c = new String('c'); s.add(c);
- var d = new String('d'); s.add(d);
- var str = '';
- goog.structs.forEach(s, function(val, key, set) {
- assertUndefined(key);
- assertEquals(s, set);
- str += val;
- });
- assertEquals(str, 'abcd');
-
- s = new Set;
- s.add('a');
- s.add('b');
- s.add('c');
- s.add('d');
- str = '';
- goog.structs.forEach(s, function(val, key, set) {
- assertUndefined(key);
- assertEquals(s, set);
- str += val;
- });
- assertEquals(str, 'abcd');
-}
-
-
-function testFilter() {
- var s = new Set;
- var a = new Number(0); s.add(a);
- var b = new Number(1); s.add(b);
- var c = new Number(2); s.add(c);
- var d = new Number(3); s.add(d);
-
- var s2 = goog.structs.filter(s, function (val, key, set) {
- assertUndefined(key);
- assertEquals(s, set);
- return val > 1;
- });
- assertEquals(stringifySet(s2), '23');
-
- s = new Set;
- s.add(0);
- s.add(1);
- s.add(2);
- s.add(3);
-
- s2 = goog.structs.filter(s, function (val, key, set) {
- assertUndefined(key);
- assertEquals(s, set);
- return val > 1;
- });
- assertEquals(stringifySet(s2), '23');
-}
-
-
-function testSome() {
- var s = new Set;
- var a = new Number(0); s.add(a);
- var b = new Number(1); s.add(b);
- var c = new Number(2); s.add(c);
- var d = new Number(3); s.add(d);
-
- var b = goog.structs.some(s, function (val, key, s2) {
- assertUndefined(key);
- assertEquals(s, s2);
- return val > 1;
- });
- assertTrue(b);
- var b = goog.structs.some(s, function (val, key, s2) {
- assertUndefined(key);
- assertEquals(s, s2);
- return val > 100;
- });
- assertFalse(b);
-
- s = new Set;
- s.add(0);
- s.add(1);
- s.add(2);
- s.add(3);
-
- b = goog.structs.some(s, function (val, key, s2) {
- assertUndefined(key);
- assertEquals(s, s2);
- return val > 1;
- });
- assertTrue(b);
- b = goog.structs.some(s, function (val, key, s2) {
- assertUndefined(key);
- assertEquals(s, s2);
- return val > 100;
- });
- assertFalse(b);
-}
-
-
-function testEvery() {
- var s = new Set;
- var a = new Number(0); s.add(a);
- var b = new Number(1); s.add(b);
- var c = new Number(2); s.add(c);
- var d = new Number(3); s.add(d);
-
- var b = goog.structs.every(s, function (val, key, s2) {
- assertUndefined(key);
- assertEquals(s, s2);
- return val >= 0;
- });
- assertTrue(b);
- b = goog.structs.every(s, function (val, key, s2) {
- assertUndefined(key);
- assertEquals(s, s2);
- return val > 1;
- });
- assertFalse(b);
-
- s = new Set;
- s.add(0);
- s.add(1);
- s.add(2);
- s.add(3);
-
- b = goog.structs.every(s, function (val, key, s2) {
- assertUndefined(key);
- assertEquals(s, s2);
- return val >= 0;
- });
- assertTrue(b);
- b = goog.structs.every(s, function (val, key, s2) {
- assertUndefined(key);
- assertEquals(s, s2);
- return val > 1;
- });
- assertFalse(b);
-}
-
-function testIterator() {
- var s = new Set;
- s.add(0);
- s.add(1);
- s.add(2);
- s.add(3);
- s.add(4);
-
- assertEquals('01234', goog.iter.join(s, ''));
-
- s.remove(1);
- s.remove(3);
-
- assertEquals('024', goog.iter.join(s, ''));
-}
-
-</script>
-</body>
-</html>