UNPKG

core-graphics

Version:

A core library for creating shape-based graphic editors

90 lines (61 loc) 3.13 kB
'use strict'; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _tap = require('tap'); var _compress = require('../../lib/contrib/compress'); var _historyEvent = require('../history/history-event'); var _history = require('../test-data/history'); var _history2 = _interopRequireDefault(_history); var _largeHistory = require('../test-data/large-history'); var _largeHistory2 = _interopRequireDefault(_largeHistory); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } (0, _tap.test)('decompressPointsArray(compressPointsArray(x)) === x', function (t) { var points = [{ x: 10, y: 20 }, { x: 30, y: 40 }]; t.deepEqual((0, _compress.decompressPointsArray)((0, _compress.compressPointsArray)(points)), points); t.end(); }); (0, _tap.test)('decomp(comp(x)) === x', function (t) { var compressed = _history2.default.map(_compress.compressHistoryEvent); var decompressed = compressed.map(_compress.decompressHistoryEvent); t.deepEqual(decompressed, _history2.default); t.end(); }); (0, _tap.test)('|comp(x)| / |decomp(x)| <= 0.6', function (t) { var compressed = _history2.default.map(_compress.compressHistoryEvent); var decompressed = compressed.map(_compress.decompressHistoryEvent); var compL = JSON.stringify(compressed).length; var decompL = JSON.stringify(decompressed).length; t.assert(compL / decompL <= 0.6, 'ratio is fine'); t.end(); }); (0, _tap.test)('comp(x) rounds shape data keypoints to 2 significant digits', function (t) { var initialShapeData = { graphicalContextData: { SC: '#1B2B34' }, id: '1', keyPoints: [{ x: 160.24213, y: 80.358 }, { x: 160.44213, y: 160.346 }], type: 'FREEHAND' }; var expectedShapeData = _extends({}, initialShapeData, { keyPoints: [{ x: 160.24, y: 80.36 }, { x: 160.44, y: 160.35 }] }); var testEvent = (0, _historyEvent.getPersistedHistoryEvent)({ id: 0, author: 'some' }, (0, _historyEvent.shapeAddEvent)(initialShapeData)); var expectedEvent = (0, _historyEvent.getPersistedHistoryEvent)({ id: 0, author: 'some' }, (0, _historyEvent.shapeAddEvent)(expectedShapeData)); var processedEvent = (0, _compress.decompressHistoryEvent)((0, _compress.compressHistoryEvent)(testEvent)); t.deepEqual(processedEvent, expectedEvent); t.end(); }); /* test('large decomp(comp(x)) === x', t => { const compressed = TEST_LARGE_HISTORY.map(compressHistoryEvent); const decompressed = compressed.map(decompressHistoryEvent); t.deepEqual(decompressed, TEST_LARGE_HISTORY); t.end(); }); test('large |comp(x)| / |decomp(x)| <= 0.6', t => { const compressed = TEST_LARGE_HISTORY.map(compressHistoryEvent); const decompressed = compressed.map(decompressHistoryEvent); const compL = JSON.stringify(compressed).length; const decompL = JSON.stringify(decompressed).length; t.assert( (compL / decompL) <= 0.6, 'ratio is fine'); t.end(); }); */