From a1e0969d9fa295f7fea0f1b2507a82599d559787 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Thu, 23 Jun 2016 17:17:59 +0200 Subject: [PATCH] Add tests --- test/spec/ol/transform.test.js | 86 ++++++++++++++++++++++++++++++++++ test/spec/ol/vec/mat4.test.js | 25 ++++++++++ 2 files changed, 111 insertions(+) create mode 100644 test/spec/ol/transform.test.js create mode 100644 test/spec/ol/vec/mat4.test.js diff --git a/test/spec/ol/transform.test.js b/test/spec/ol/transform.test.js new file mode 100644 index 0000000000..e48aee8719 --- /dev/null +++ b/test/spec/ol/transform.test.js @@ -0,0 +1,86 @@ +goog.provide('ol.test.transform'); + +describe('ol.transform', function() { + + function assertRoughlyEqual(t1, t2) { + t1.forEach(function(item, index) { + expect(item).to.roughlyEqual(t2[index], 1e-8); + }); + } + + describe('ol.transform.create()', function() { + it('creates an identity transform', function() { + expect(ol.transform.create()).to.eql([1, 0, 0, 1, 0, 0]); + }); + }); + + describe('ol.transform.reset()', function() { + it('resets tansform to an identity transform', function() { + var transform = [1, 2, 3, 4, 5, 6]; + expect(ol.transform.reset(transform)).to.eql([1, 0, 0, 1, 0, 0]); + expect(transform).to.eql([1, 0, 0, 1, 0, 0]); + }); + }); + + describe('ol.transform.set()', function() { + it('sets the given values', function() { + var transform = ol.transform.create(); + expect(ol.transform.set(transform, 1, 2, 3, 4, 5, 6)).to.eql([1, 2, 3, 4, 5, 6]); + expect(transform).to.eql([1, 2, 3, 4, 5, 6]); + }); + }); + + describe('ol.transform.setFromArray()', function() { + it('sets values of 2nd transform on 1st transform', function() { + var transform1 = ol.transform.create(); + var transform2 = [1, 2, 3, 4, 5, 6]; + expect(ol.transform.setFromArray(transform1, transform2)).to.eql(transform2); + expect(transform1).to.eql(transform2); + }); + }); + + describe('ol.transform.translate()', function() { + var transform = ol.transform.create(); + expect(ol.transform.translate(transform, 3, 4)).to.eql([1, 0, 0, 1, 3, 4]); + expect(transform).to.eql([1, 0, 0, 1, 3, 4]); + }); + + describe('ol.transform.scale()', function() { + var transform = ol.transform.create(); + expect(ol.transform.scale(transform, 3, 4)).to.eql([3, 0, 0, 4, 0, 0]); + expect(transform).to.eql([3, 0, 0, 4, 0, 0]); + }); + + describe('ol.transform.rotate()', function() { + var transform = ol.transform.create(); + assertRoughlyEqual(ol.transform.rotate(transform, Math.PI / 2), [0, 1, -1, 0, 0, 0]); + assertRoughlyEqual(transform, [0, 1, -1, 0, 0, 0]); + }); + + describe('ol.transform.multiply()', function() { + var transform1 = [1, 2, 1, 2, 1, 2]; + var transform2 = [1, 2, 1, 2, 1, 2]; + expect(ol.transform.multiply(transform1, transform2)).to.eql([3, 6, 3, 6, 4, 8]); + expect(transform1).to.eql([3, 6, 3, 6, 4, 8]); + }); + + describe('ol.transform.invert()', function() { + var transform = [1, 0, 1, 0, 1, 0]; + expect(function() { + ol.transform.invert(transform); + }).to.throwException(); + transform = [1, 1, 1, 2, 2, 0]; + expect(ol.transform.invert(transform)).to.eql([2, -1, -1, 1, -4, 2]); + expect(transform).to.eql([2, -1, -1, 1, -4, 2]); + }); + + describe('ol.transform.apply()', function() { + var transform = ol.transform.translate(ol.transform.create(), 2, 3); + var point = [1, 2]; + expect(ol.transform.apply(transform, point)).to.eql([3, 5]); + expect(point).to.eql([3, 5]); + }); + +}); + +goog.require('ol.transform'); diff --git a/test/spec/ol/vec/mat4.test.js b/test/spec/ol/vec/mat4.test.js new file mode 100644 index 0000000000..f034926e3d --- /dev/null +++ b/test/spec/ol/vec/mat4.test.js @@ -0,0 +1,25 @@ +goog.provide('ol.test.vec.Mat4'); + +describe('ol.vec.Mat4', function() { + + describe('ol.vec.Mat4.create()', function() { + it('returns the expected matrix', function() { + expect(ol.vec.Mat4.create()).to.eql( + [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]); + }); + }); + + describe('ol.vec.Mat4.fromTransform()', function() { + it('sets the expected transform on the matrix', function() { + var transform = [1, 2, 3, 4, 5, 6]; + var result = ol.vec.Mat4.create(); + expect(ol.vec.Mat4.fromTransform(result, transform)).to.eql( + [1, 2, 0, 0, 3, 4, 0, 0, 0, 0, 1, 0, 5, 6, 0, 1]); + expect(result).to.eql( + [1, 2, 0, 0, 3, 4, 0, 0, 0, 0, 1, 0, 5, 6, 0, 1]); + }); + }); + +}); + +goog.require('ol.vec.Mat4');