12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- describe("Vector", function () {
- 'use strict';
- var Vector = TurtleGraphics.Vector,
- DegreesInRad = Math.PI / 180;
- beforeEach(function () {});
- it("cross product", function () {
- var v = new Vector([3, -3, 1]),
- v2 = new Vector([4, 9, 2]);
-
- expect(v.cross(v2)).toEqual(new Vector([-15, -2, 39]));
- });
-
- it("rotate", function () {
- var v = new Vector([1, 0, 0]);
-
- expect(v.rotate(90)).toEqual(new Vector([0, 1, 0]));
- expect(v.rotateNormal(new Vector([0, 0, 0]), 180 * DegreesInRad)).toEqual(new Vector([-1, 0, 0]));
- });
-
- it("vector <-> angle", function () {
- var v = new Vector([0, 1, 0]);
- expect(v.toAngle()).toEqual(90);
- expect(v.rotate(90).toAngle()).toEqual(180);
- expect(Vector.angle2vec(90)).toEqual(new Vector([0, 1, 0]))
- });
-
- it("basics", function () {
- var v = new Vector([1, 2, 3]);
- expect(v.div(3)).toEqual(new Vector([1 / 3, 2 / 3, 3 / 3]));
- expect(v.add(new Vector([3, 3, 3]))).toEqual(new Vector([4, 5, 6]));
- expect(v.smul(3)).toEqual(new Vector([3, 6, 9]));
- });
-
- it("scale", function () {
- var v = new Vector([0.5, 0.5, 1]);
- expect(v.scale(3, 3)).toEqual(new Vector([1.5, 1.5, 1]));
- });
-
- it("length", function () {
- var v = new Vector([2, 4, 1]);
- expect(v.len()).toBe(4.58257569495584);
- });
-
- it("linear", function () {
- var v = new Vector([0, 10, 0]);
- expect(v.linear(1, 2, new Vector([1, 0, 0]))).toEqual(new Vector([2, 10, 0]));
- });
- });
|