| Index: tracing/tracing/base/utils_test.html
|
| diff --git a/tracing/tracing/base/utils_test.html b/tracing/tracing/base/utils_test.html
|
| index 471425cc94bdfb2c4ef7ff975ec1c9e0f685ee7b..fe6533c0964760d1a6051f741ce7a2dfd0a1aac9 100644
|
| --- a/tracing/tracing/base/utils_test.html
|
| +++ b/tracing/tracing/base/utils_test.html
|
| @@ -58,5 +58,128 @@ tr.b.unittest.testSuite(function() {
|
| assert.isTrue(tr.b.isUrl('http://google.com/'));
|
| assert.isTrue(tr.b.isUrl('https://www.google.com/'));
|
| });
|
| +
|
| + test('setsEqual', function() {
|
| + assert.isTrue(tr.b.setsEqual(new Set(), new Set()));
|
| + assert.isTrue(tr.b.setsEqual(new Set(['a']), new Set(['a'])));
|
| + assert.isFalse(tr.b.setsEqual(new Set(), undefined));
|
| + assert.isFalse(tr.b.setsEqual(new Set(), new Set(['a'])));
|
| + assert.isFalse(tr.b.setsEqual(new Set(['a']), new Set(['b'])));
|
| + });
|
| +
|
| + test('compareArrays', function() {
|
| + function cmp(x, y) {
|
| + assert.isDefined(x);
|
| + assert.isDefined(y);
|
| + return x - y;
|
| + }
|
| +
|
| + assert.isBelow(tr.b.compareArrays([1], [2], cmp), 0);
|
| + assert.isAbove(tr.b.compareArrays([2], [1], cmp), 0);
|
| +
|
| + assert.isBelow(tr.b.compareArrays([1], [1, 2], cmp), 0);
|
| + assert.isAbove(tr.b.compareArrays([1, 2], [1], cmp), 0);
|
| +
|
| + assert.isBelow(tr.b.compareArrays([], [1], cmp), 0);
|
| + assert.isAbove(tr.b.compareArrays([1], [], cmp), 0);
|
| +
|
| + assert.isAbove(tr.b.compareArrays([2], [1], cmp), 0);
|
| +
|
| + assert.strictEqual(tr.b.compareArrays([], [], cmp), 0);
|
| + assert.strictEqual(tr.b.compareArrays([1], [1], cmp), 0);
|
| + });
|
| +
|
| + test('getOnlyElement_throwsIfEmpty', function() {
|
| + assert.throws(() => tr.b.getOnlyElement([]),
|
| + 'getOnlyElement was passed an empty iterable.');
|
| + });
|
| +
|
| + test('getOnlyElement_oneItem', function() {
|
| + assert.strictEqual(tr.b.getOnlyElement([1]), 1);
|
| + });
|
| +
|
| + test('getOnlyElement_twoItems', function() {
|
| + assert.throws(() => tr.b.getOnlyElement([1, 2]),
|
| + 'getOnlyElement was passed an iterable with multiple elements.');
|
| + });
|
| +
|
| + test('getFirstElement_throwsIfEmpty', function() {
|
| + assert.throws(() => tr.b.getFirstElement([]),
|
| + 'getFirstElement was passed an empty iterable.');
|
| + });
|
| +
|
| + test('getFirstElement_oneItem', function() {
|
| + assert.strictEqual(tr.b.getFirstElement([1]), 1);
|
| + });
|
| +
|
| + test('getFirstElement_twoItems', function() {
|
| + assert.strictEqual(tr.b.getFirstElement([1, 2]), 1);
|
| + });
|
| +
|
| + test('groupIntoMap', function() {
|
| + // Empty array
|
| + let srcArray = [];
|
| + const fn = function(curr) { return (curr % 2); };
|
| + const dstDict = {};
|
| +
|
| + assert.deepEqual(tr.b.groupIntoMap(srcArray, fn), dstDict);
|
| +
|
| + // Non-empty array
|
| + srcArray = [0, 1, 2, 3, 4, 5, 6];
|
| + const dstMap = new Map([
|
| + [0, [0, 2, 4, 6]],
|
| + [1, [1, 3, 5]]
|
| + ]);
|
| +
|
| + assert.deepEqual(tr.b.groupIntoMap(srcArray, fn), dstMap);
|
| + });
|
| +
|
| + test('inPlaceFilter_simple', function() {
|
| + const someThisArg = {};
|
| + const list = [1, 2, 3, 4];
|
| + tr.b.inPlaceFilter(list, function(item) {
|
| + assert.strictEqual(this, someThisArg);
|
| + return item % 2 === 0;
|
| + }, someThisArg);
|
| + assert.deepEqual(list, [2, 4]);
|
| + });
|
| +
|
| + test('invertArrayOfDicts_defaultGetter', function() {
|
| + const array = [
|
| + {a: 6, b: 5},
|
| + undefined,
|
| + {a: 4, b: 3, c: 2},
|
| + {b: 1, c: 0}
|
| + ];
|
| + const dict = tr.b.invertArrayOfDicts(array);
|
| + assert.sameMembers(Object.keys(dict), ['a', 'b', 'c']);
|
| + assert.deepEqual(Array.from(dict.a), [6, undefined, 4, undefined]);
|
| + assert.deepEqual(Array.from(dict.b), [5, undefined, 3, 1]);
|
| + assert.deepEqual(Array.from(dict.c), [undefined, undefined, 2, 0]);
|
| + });
|
| +
|
| + test('invertArrayOfDicts_customGetter', function() {
|
| + const fakeThis = { itemToDict: JSON.parse };
|
| + const array = [
|
| + '{"a": "test", "b": true}',
|
| + '{}',
|
| + '{invalid-json}',
|
| + '{"a": 42, "c": false}'
|
| + ];
|
| + const dict = tr.b.invertArrayOfDicts(array, function(item) {
|
| + try {
|
| + return this.itemToDict(item);
|
| + } catch (e) {
|
| + return undefined;
|
| + }
|
| + }, fakeThis);
|
| + assert.sameMembers(Object.keys(dict), ['a', 'b', 'c']);
|
| + assert.deepEqual(
|
| + Array.from(dict.a), ['test', undefined, undefined, 42]);
|
| + assert.deepEqual(
|
| + Array.from(dict.b), [true, undefined, undefined, undefined]);
|
| + assert.deepEqual(
|
| + Array.from(dict.c), [undefined, undefined, undefined, false]);
|
| + });
|
| });
|
| </script>
|
|
|