Added logging, changed some directory structure

This commit is contained in:
2018-01-13 21:33:40 -05:00
parent f079a5f067
commit 8e72ffb917
73656 changed files with 35284 additions and 53718 deletions

View File

@@ -0,0 +1,12 @@
'use strict';
var toArray = require('es5-ext/array/to-array')
, Set = require('../../');
module.exports = function (t, a) {
var content = ['raz', 2, true], set = new Set(content), copy;
copy = t.call(set);
a.not(copy, set, "Copy");
a.deep(toArray(copy), content, "Content");
};

View File

@@ -0,0 +1,9 @@
'use strict';
var Set = require('../../');
module.exports = function (t, a) {
a(t.call(new Set(), Boolean), true, "Empty set");
a(t.call(new Set([2, 3, 4]), Boolean), true, "Truthy");
a(t.call(new Set([2, 0, 4]), Boolean), false, "Falsy");
};

View File

@@ -0,0 +1,12 @@
'use strict';
var aFrom = require('es5-ext/array/from')
, Set = require('../../');
module.exports = function (t, a) {
a.deep(aFrom(t.call(new Set(), Boolean)), [], "Empty set");
a.deep(aFrom(t.call(new Set([2, 3, 4]), Boolean)), [2, 3, 4], "All true");
a.deep(aFrom(t.call(new Set([0, false, 4]), Boolean)), [4], "Some false");
a.deep(aFrom(t.call(new Set([0, false, null]), Boolean)), [], "All false");
};

View File

@@ -0,0 +1,12 @@
'use strict';
var Set = require('../../');
module.exports = function (t, a) {
var content = ['raz', 2, true], set = new Set(content);
a(t.call(set), 'raz');
set = new Set();
a(t.call(set), undefined);
};

View File

@@ -0,0 +1,12 @@
'use strict';
var Set = require('../../');
module.exports = function (t, a) {
var content = ['raz', 2, true], set = new Set(content);
a(t.call(set), true);
set = new Set();
a(t.call(set), undefined);
};

View File

@@ -0,0 +1,10 @@
'use strict';
var Set = require('../../');
module.exports = function (t, a) {
a(t.call(new Set(), Boolean), false, "Empty set");
a(t.call(new Set([2, 3, 4]), Boolean), true, "All true");
a(t.call(new Set([0, false, 4]), Boolean), true, "Some false");
a(t.call(new Set([0, false, null]), Boolean), false, "All false");
};

View File

@@ -0,0 +1,3 @@
'use strict';
module.exports = function (t, a) { a(typeof Set, 'function'); };

View File

@@ -0,0 +1,3 @@
'use strict';
module.exports = function (T, a) { a((new T(['raz', 'dwa'])).size, 2); };

View File

@@ -0,0 +1,14 @@
'use strict';
var global = require('es5-ext/global')
, polyfill = require('../polyfill');
module.exports = function (t, a) {
var cache;
a(typeof t(), 'boolean');
cache = global.Set;
global.Set = polyfill;
a(t(), true);
if (cache === undefined) delete global.Set;
else global.Set = cache;
};

View File

@@ -0,0 +1,3 @@
'use strict';
module.exports = function (t, a) { a(typeof t, 'boolean'); };

View File

@@ -0,0 +1,16 @@
'use strict';
var SetPoly = require('../polyfill');
module.exports = function (t, a) {
a(t(undefined), false, "Undefined");
a(t(null), false, "Null");
a(t(true), false, "Primitive");
a(t('raz'), false, "String");
a(t({}), false, "Object");
a(t([]), false, "Array");
if (typeof Set !== 'undefined') {
a(t(new Set()), true, "Native");
}
a(t(new SetPoly()), true, "Polyfill");
};

View File

@@ -0,0 +1,13 @@
'use strict';
var Set = require('../../polyfill')
, toArray = require('es5-ext/array/to-array');
module.exports = function (T, a) {
var set = new Set(['raz', 'dwa']);
a.deep(toArray(new T(set)), ['raz', 'dwa'], "Default");
a.deep(toArray(new T(set, 'key+value')), [['raz', 'raz'], ['dwa', 'dwa']],
"Key & Value");
a.deep(toArray(new T(set, 'value')), ['raz', 'dwa'], "Other");
};

View File

@@ -0,0 +1,113 @@
'use strict';
var Set = require('../../primitive')
, toArray = require('es5-ext/array/to-array')
, iteratorSymbol = require('es6-symbol').iterator
, compare, map;
compare = function (a, b) {
if (!a.value) return -1;
if (!b.value) return 1;
return a.value.localeCompare(b.value);
};
map = function (arr) {
return arr.sort().map(function (value) {
return { done: false, value: value };
});
};
module.exports = function (T) {
return {
"": function (a) {
var arr = ['raz', 'dwa', 'trzy', 'cztery', 'pięć'], it, y, z
, set = new Set(arr), result = [];
it = new T(set);
a(it[iteratorSymbol](), it, "@@iterator");
y = it.next();
result.push(y);
z = it.next();
a.not(y, z, "Recreate result");
result.push(z);
result.push(it.next());
result.push(it.next());
result.push(it.next());
a.deep(result.sort(compare), map(arr));
a.deep(y = it.next(), { done: true, value: undefined }, "End");
a.not(y, it.next(), "Recreate result on dead");
},
Emited: function (a) {
var arr = ['raz', 'dwa', 'trzy', 'cztery', 'pięć'], it
, set = new Set(arr), result = [];
it = new T(set);
result.push(it.next());
result.push(it.next());
set.add('sześć');
arr.push('sześć');
result.push(it.next());
set.delete('pięć');
arr.splice(4, 1);
result.push(it.next());
result.push(it.next());
a.deep(result.sort(compare), map(arr));
a.deep(it.next(), { done: true, value: undefined }, "End");
},
"Emited #2": function (a) {
var arr = ['raz', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć'], it
, set = new Set(arr), result = [];
it = new T(set);
result.push(it.next());
result.push(it.next());
set.add('siedem');
set.delete('siedem');
result.push(it.next());
result.push(it.next());
set.delete('pięć');
arr.splice(4, 1);
result.push(it.next());
a.deep(result.sort(compare), map(arr));
a.deep(it.next(), { done: true, value: undefined }, "End");
},
"Emited: Clear #1": function (a) {
var arr = ['raz', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć'], it
, set = new Set(arr), result = [];
it = new T(set);
result.push(it.next());
result.push(it.next());
arr = ['raz', 'dwa'];
set.clear();
a.deep(result.sort(compare), map(arr));
a.deep(it.next(), { done: true, value: undefined }, "End");
},
"Emited: Clear #2": function (a) {
var arr = ['raz', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć'], it
, set = new Set(arr), result = [];
it = new T(set);
result.push(it.next());
result.push(it.next());
set.clear();
set.add('foo');
set.add('bar');
arr = ['raz', 'dwa', 'foo', 'bar'];
result.push(it.next());
result.push(it.next());
a.deep(result.sort(compare), map(arr));
a.deep(it.next(), { done: true, value: undefined }, "End");
},
Kinds: function (a) {
var set = new Set(['raz', 'dwa']);
a.deep(toArray(new T(set)).sort(), ['raz', 'dwa'].sort(), "Default");
a.deep(toArray(new T(set, 'key+value')).sort(),
[['raz', 'raz'], ['dwa', 'dwa']].sort(), "Key & Value");
a.deep(toArray(new T(set, 'value')).sort(), ['raz', 'dwa'].sort(),
"Other");
}
};
};

View File

@@ -0,0 +1,50 @@
'use strict';
var aFrom = require('es5-ext/array/from')
, toArray = require('es5-ext/array/to-array');
module.exports = function (T, a) {
var arr = ['raz', 'dwa', 'trzy'], set = new T(arr), x = {}, y = {}, i = 0;
a(set instanceof T, true, "Set");
a(set.size, 3, "Size");
a(set.has('raz'), true, "Has: true");
a(set.has(x), false, "Has: false");
a(set.add(x), set, "Add: return");
a(set.has(x), true, "Add");
a(set.size, 4, "Add: Size");
a(set.delete({}), false, "Delete: false");
arr.push(x);
set.forEach(function () {
a.deep(aFrom(arguments), [arr[i], arr[i], set],
"ForEach: Arguments: #" + i);
a(this, y, "ForEach: Context: #" + i);
if (i === 0) {
a(set.delete('raz'), true, "Delete: true");
a(set.has('raz'), false, "Delete");
a(set.size, 3, "Delete: size");
set.add('cztery');
arr.push('cztery');
}
i++;
}, y);
arr.splice(0, 1);
a.deep(toArray(set.entries()), [['dwa', 'dwa'], ['trzy', 'trzy'], [x, x],
['cztery', 'cztery']], "Entries");
a.deep(toArray(set.keys()), ['dwa', 'trzy', x, 'cztery'], "Keys");
a.deep(toArray(set.values()), ['dwa', 'trzy', x, 'cztery'], "Values");
a.deep(toArray(set), ['dwa', 'trzy', x, 'cztery'], "Iterator");
set.clear();
a(set.size, 0, "Clear: size");
a(set.has('trzy'), false, "Clear: has");
a.deep(toArray(set), [], "Clear: Values");
a.h1("Empty initialization");
set = new T();
set.add('foo');
a(set.size, 1);
a(set.has('foo'), true);
};

View File

@@ -0,0 +1,50 @@
'use strict';
var aFrom = require('es5-ext/array/from')
, getIterator = require('es6-iterator/get')
, toArray = require('es5-ext/array/to-array');
module.exports = function (T, a) {
var arr = ['raz', 'dwa', 'trzy'], set = new T(arr), x = 'other', y = 'other2'
, i = 0, result = [];
a(set instanceof T, true, "Set");
a(set.size, 3, "Size");
a(set.has('raz'), true, "Has: true");
a(set.has(x), false, "Has: false");
a(set.add(x), set, "Add: return");
a(set.has(x), true, "Add");
a(set.size, 4, "Add: Size");
a(set.delete('else'), false, "Delete: false");
a(set.get('raz'), 'raz', "Get");
arr.push(x);
set.forEach(function () {
result.push(aFrom(arguments));
a(this, y, "ForEach: Context: #" + i);
}, y);
a.deep(result.sort(function (a, b) {
return a[0].localeCompare(b[0]);
}), arr.sort().map(function (val) { return [val, val, set]; }));
a.deep(toArray(set.entries()).sort(), [['dwa', 'dwa'], ['trzy', 'trzy'],
[x, x], ['raz', 'raz']].sort(), "Entries");
a.deep(toArray(set.keys()).sort(), ['dwa', 'trzy', x, 'raz'].sort(),
"Keys");
a.deep(toArray(set.values()).sort(), ['dwa', 'trzy', x, 'raz'].sort(),
"Values");
a.deep(toArray(getIterator(set)).sort(), ['dwa', 'trzy', x, 'raz'].sort(),
"Iterator");
set.clear();
a(set.size, 0, "Clear: size");
a(set.has('trzy'), false, "Clear: has");
a.deep(toArray(set.values()), [], "Clear: Values");
a.h1("Empty initialization");
set = new T();
set.add('foo');
a(set.size, 1);
a(set.has('foo'), true);
};

View File

@@ -0,0 +1,19 @@
'use strict';
var SetPoly = require('../polyfill');
module.exports = function (t, a) {
var set;
a.throws(function () { t(undefined); }, TypeError, "Undefined");
a.throws(function () { t(null); }, TypeError, "Null");
a.throws(function () { t(true); }, TypeError, "Primitive");
a.throws(function () { t('raz'); }, TypeError, "String");
a.throws(function () { t({}); }, TypeError, "Object");
a.throws(function () { t([]); }, TypeError, "Array");
if (typeof Set !== 'undefined') {
set = new Set();
a(t(set), set, "Native");
}
set = new SetPoly();
a(t(set), set, "Polyfill");
};