UNPKG

muschema

Version:
95 lines 3.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var test = require("tape"); var constants_1 = require("../constants"); var __1 = require("../"); var mustreams_1 = require("mustreams"); var numSchemaTypes = [ __1.MuInt8, __1.MuInt16, __1.MuInt32, __1.MuUint8, __1.MuUint16, __1.MuUint32, __1.MuFloat32, __1.MuFloat64, ]; var intSchemaTypes = [ __1.MuInt8, __1.MuInt16, __1.MuInt32, __1.MuUint8, __1.MuUint16, __1.MuUint32, ]; var floatSchemaTypes = [ __1.MuFloat32, __1.MuFloat64, ]; test('alloc() & clone()', function (t) { numSchemaTypes.forEach(function (Type) { var defaultValue = 0; var numSchema = new Type(); t.equals(numSchema.identity, defaultValue); t.equals(numSchema.alloc(), defaultValue); t.equals(numSchema.clone(0), 0); var muType = numSchema.muType; var min = constants_1.Constants[muType].MIN; var max = constants_1.Constants[muType].MAX; numSchema = new Type(min); t.equals(numSchema.identity, min); t.equals(numSchema.alloc(), min); t.equals(numSchema.clone(min), min); numSchema = new Type(max); t.equals(numSchema.identity, max); t.equals(numSchema.alloc(), max); t.equals(numSchema.clone(max), max); if (muType.indexOf('int') === 0) { numSchema = new Type(-1); t.equals(numSchema.identity, -1); t.equals(numSchema.alloc(), -1); t.equals(numSchema.clone(-1), -1); } if (constants_1.Constants[muType]['EPSILON']) { var epsilon = constants_1.Constants[muType]['EPSILON']; numSchema = new Type(-epsilon); t.equals(numSchema.identity, -epsilon); t.equals(numSchema.alloc(), -epsilon); t.equals(numSchema.clone(-epsilon), -epsilon); numSchema = new Type(epsilon); t.equals(numSchema.identity, epsilon); t.equals(numSchema.alloc(), epsilon); t.equals(numSchema.clone(epsilon), epsilon); } }); t.end(); }); test('diff() & patch()', function (t) { intSchemaTypes.forEach(function (Type) { var intSchema = new Type(); var ws = new mustreams_1.MuWriteStream(2); var smallNum = 1e-8; t.false(intSchema.diff(0, smallNum, ws)); t.false(intSchema.diff(smallNum, 0, ws)); t.false(intSchema.diff(0, 1 - smallNum, ws)); t.false(intSchema.diff(1 - smallNum, 0, ws)); }); numSchemaTypes.forEach(function (Type) { var numSchema = new Type(); var ws = new mustreams_1.MuWriteStream(2); var muType = numSchema.muType; var min = constants_1.Constants[muType].MIN; var max = constants_1.Constants[muType].MAX; t.true(numSchema.diff(1, min, ws)); t.true(numSchema.diff(1, 0, ws)); t.true(numSchema.diff(1, max, ws)); var rs = new mustreams_1.MuReadStream(ws.buffer.uint8); t.equals(numSchema.patch(123, rs), min); t.equals(numSchema.patch(123, rs), 0); t.equals(numSchema.patch(123, rs), max); }); floatSchemaTypes.forEach(function (Type) { var floatSchema = new Type(); var ws = new mustreams_1.MuWriteStream(2); var muType = floatSchema.muType; var epsilon = constants_1.Constants[muType]['EPSILON']; t.true(floatSchema.diff(1.0, -epsilon, ws)); t.true(floatSchema.diff(1.0, epsilon, ws)); var rs = new mustreams_1.MuReadStream(ws.buffer.uint8); t.equals(floatSchema.patch(1.0, rs), -epsilon); t.equals(floatSchema.patch(1.0, rs), epsilon); }); t.end(); }); //# sourceMappingURL=numbers.js.map