UNPKG

muschema

Version:
216 lines 9.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var test = require("tape"); var equal = require("fast-deep-equal"); var __1 = require("../"); var constants_1 = require("../constants"); var helper_1 = require("./helper"); test('array - identity', function (t) { var arraySchema = new __1.MuArray(new __1.MuString()); t.same(arraySchema.identity, []); var id = ['foo', 'bar']; arraySchema = new __1.MuArray(new __1.MuString(), id); t.equals(arraySchema.identity, id); t.end(); }); test('array - alloc()', function (t) { var arraySchema = new __1.MuArray(new __1.MuFloat64()); t.same(arraySchema.alloc(), []); arraySchema = new __1.MuArray(new __1.MuUint32(), [233, 666]); t.same(arraySchema.alloc(), []); t.end(); }); function randomArray(dimension, muType, length_) { var length = length_ || Math.random() * 10 | 0; var result = new Array(length); if (dimension === 1) { for (var i = 0; i < length; ++i) { result[i] = helper_1.randomValue(muType); } return result; } for (var i = 0; i < length; ++i) { result[i] = randomArray(dimension - 1, muType, length_); } return result; } test('array (flat) - clone()', function (t) { for (var _i = 0, muPrimitiveTypes_1 = constants_1.muPrimitiveTypes; _i < muPrimitiveTypes_1.length; _i++) { var muType = muPrimitiveTypes_1[_i]; var valueSchema = helper_1.muPrimitiveSchema(muType); if (valueSchema) { var arraySchema = new __1.MuArray(valueSchema); for (var i = 0; i < 200; ++i) { var arr = randomArray(1, muType); var copy = arraySchema.clone(arr); t.notEquals(copy, arr); t.same(copy, arr); } } } t.end(); }); test('array (nested) - clone()', function (t) { for (var _i = 0, muPrimitiveTypes_2 = constants_1.muPrimitiveTypes; _i < muPrimitiveTypes_2.length; _i++) { var muType = muPrimitiveTypes_2[_i]; var valueSchema = helper_1.muPrimitiveSchema(muType); if (valueSchema) { var arraySchema = new __1.MuArray(new __1.MuArray(valueSchema)); for (var i = 0; i < 100; ++i) { var array2D = randomArray(2, muType); var copy = arraySchema.clone(array2D); t.notEquals(copy, array2D); t.same(copy, array2D); } arraySchema = new __1.MuArray(new __1.MuArray(new __1.MuArray(valueSchema))); for (var i = 0; i < 100; ++i) { var array3D = randomArray(3, muType); var copy = arraySchema.clone(array3D); t.notEquals(copy, array3D); t.same(copy, array3D); } arraySchema = new __1.MuArray(new __1.MuArray(new __1.MuArray(new __1.MuArray(valueSchema)))); for (var i = 0; i < 100; ++i) { var array4D = randomArray(4, muType); var copy = arraySchema.clone(array4D); t.notEquals(copy, array4D); t.same(copy, array4D); } } } t.end(); }); test('array - copy()', function (t) { for (var _i = 0, muPrimitiveTypes_3 = constants_1.muPrimitiveTypes; _i < muPrimitiveTypes_3.length; _i++) { var muType = muPrimitiveTypes_3[_i]; var valueSchema = helper_1.muPrimitiveSchema(muType); if (valueSchema) { var source = void 0; var target = void 0; var arraySchema = new __1.MuArray(valueSchema); for (var i = 0; i < 10; ++i) { source = randomArray(1, muType); target = randomArray(1, muType); arraySchema.copy(source, target); t.deepEqual(target, source); } arraySchema = new __1.MuArray(new __1.MuArray(valueSchema)); for (var i = 0; i < 10; ++i) { source = randomArray(2, muType); target = randomArray(2, muType); arraySchema.copy(source, target); t.deepEqual(target, source); } arraySchema = new __1.MuArray(new __1.MuArray(new __1.MuArray(valueSchema))); for (var i = 0; i < 10; ++i) { source = randomArray(3, muType); target = randomArray(3, muType); arraySchema.copy(source, target); t.deepEqual(target, source); } } } t.end(); }); test('array - equal()', function (t) { for (var _i = 0, muPrimitiveTypes_4 = constants_1.muPrimitiveTypes; _i < muPrimitiveTypes_4.length; _i++) { var muType = muPrimitiveTypes_4[_i]; var valueSchema = helper_1.muPrimitiveSchema(muType); if (valueSchema) { var arraySchema = new __1.MuArray(valueSchema); t.ok(arraySchema.equal([], [])); var array = randomArray(1, muType); t.ok(arraySchema.equal(arraySchema.clone(array), array)); var a = randomArray(1, muType, 5); var b = randomArray(1, muType, 5); t.equal(arraySchema.equal(a, b), equal(a, b)); for (var i = 0; i < 10; ++i) { a = randomArray(1, muType); b = randomArray(1, muType); t.equal(arraySchema.equal(a, b), equal(a, b)); } } } for (var _a = 0, muPrimitiveTypes_5 = constants_1.muPrimitiveTypes; _a < muPrimitiveTypes_5.length; _a++) { var muType = muPrimitiveTypes_5[_a]; var valueSchema = helper_1.muPrimitiveSchema(muType); if (valueSchema) { var arraySchema = new __1.MuArray(new __1.MuArray(valueSchema)); t.ok(arraySchema.equal([], [])); var array = randomArray(2, muType); t.ok(arraySchema.equal(arraySchema.clone(array), array)); var a = randomArray(2, muType, 5); var b = randomArray(2, muType, 5); t.equal(arraySchema.equal(a, b), equal(a, b)); for (var i = 0; i < 10; ++i) { a = randomArray(2, muType); b = randomArray(2, muType); t.equal(arraySchema.equal(a, b), equal(a, b)); } } } for (var _b = 0, muPrimitiveTypes_6 = constants_1.muPrimitiveTypes; _b < muPrimitiveTypes_6.length; _b++) { var muType = muPrimitiveTypes_6[_b]; var valueSchema = helper_1.muPrimitiveSchema(muType); if (valueSchema) { var arraySchema = new __1.MuArray(new __1.MuArray(new __1.MuArray(valueSchema))); t.ok(arraySchema.equal([], [])); var array = randomArray(3, muType); t.ok(arraySchema.equal(arraySchema.clone(array), array)); var a = randomArray(3, muType, 5); var b = randomArray(3, muType, 5); t.equal(arraySchema.equal(a, b), equal(a, b)); for (var i = 0; i < 10; ++i) { a = randomArray(3, muType); b = randomArray(3, muType); t.equal(arraySchema.equal(a, b), equal(a, b)); } } } t.end(); }); test('array (flat) - diff() & patch()', function (t) { for (var _i = 0, muPrimitiveTypes_7 = constants_1.muPrimitiveTypes; _i < muPrimitiveTypes_7.length; _i++) { var muType = muPrimitiveTypes_7[_i]; var valueSchema = helper_1.muPrimitiveSchema(muType); if (valueSchema) { var arraySchema = new __1.MuArray(valueSchema); var testPatching = helper_1.testPatchingFactory(t, arraySchema); var arr = randomArray(1, muType); testPatching(arr, arr); var testPatchingPair = helper_1.testPatchingPairFactory(t, arraySchema); for (var i = 0; i < 200; ++i) { testPatchingPair(randomArray(1, muType), randomArray(1, muType)); } } } t.end(); }); test('array (nested) - diff() & patch()', function (t) { for (var _i = 0, muPrimitiveTypes_8 = constants_1.muPrimitiveTypes; _i < muPrimitiveTypes_8.length; _i++) { var muType = muPrimitiveTypes_8[_i]; var valueSchema = helper_1.muPrimitiveSchema(muType); if (valueSchema) { var arraySchema = new __1.MuArray(new __1.MuArray(valueSchema)); var testPatchingPair = helper_1.testPatchingPairFactory(t, arraySchema); for (var i = 0; i < 200; ++i) { testPatchingPair(randomArray(2, muType), randomArray(2, muType)); } arraySchema = new __1.MuArray(new __1.MuArray(new __1.MuArray(valueSchema))); testPatchingPair = helper_1.testPatchingPairFactory(t, arraySchema); for (var i = 0; i < 200; ++i) { testPatchingPair(randomArray(3, muType), randomArray(3, muType)); } arraySchema = new __1.MuArray(new __1.MuArray(new __1.MuArray(new __1.MuArray(valueSchema)))); testPatchingPair = helper_1.testPatchingPairFactory(t, arraySchema); for (var i = 0; i < 200; ++i) { testPatchingPair(randomArray(4, muType), randomArray(4, muType)); } var testPatching = helper_1.testPatchingFactory(t, arraySchema); var arr = randomArray(4, muType); testPatching(arr, arr); } } t.end(); }); //# sourceMappingURL=array.js.map