1
0
forked from 0ad/0ad

Add test for globalscripts vector, refs #4427.

This was SVN commit r20262.
This commit is contained in:
elexis 2017-10-06 18:15:09 +00:00
parent 2f24006afb
commit 99494251a1

View File

@ -0,0 +1,62 @@
var brokenVector = {
"lengthSquared": () => "incompatible vector"
};
// Test Vector2D
{
let v1 = new Vector2D();
TS_ASSERT_EQUALS(v1.x, 0);
TS_ASSERT_EQUALS(v1.y, 0);
let v2 = new Vector2D(3, 4);
TS_ASSERT_EQUALS(v1.distanceTo(v2), 5);
v2.mult(3);
TS_ASSERT_EQUALS(v2.x, 9);
TS_ASSERT_EQUALS(v2.y, 12);
v2.add(new Vector2D(1, 2));
TS_ASSERT_EQUALS(v2.x, 10);
TS_ASSERT_EQUALS(v2.y, 14);
let v3 = new Vector2D(0, 5).normalize();
TS_ASSERT_EQUALS(v3.x, 0);
TS_ASSERT_EQUALS(v3.y, 1);
v3.set(-8, 0).normalize();
TS_ASSERT_EQUALS(v3.x, -1);
TS_ASSERT_EQUALS(v3.y, 0);
let v4 = new Vector2D(2, -5).rotate(4 * Math.PI);
TS_ASSERT_EQUALS(v4.x, 2);
TS_ASSERT_EQUALS(v4.y, -5);
v4.rotate(Math.PI);
TS_ASSERT_EQUALS(v4.x, -2);
TS_ASSERT_EQUALS(v4.y, 5);
TS_ASSERT_EQUALS(new Vector2D(2, 3).dot(new Vector2D(4, 5)), 23);
TS_ASSERT_EQUALS(new Vector2D(3, 5).cross(new Vector2D(-4, -1/3)), 19);
TS_ASSERT_EQUALS(new Vector2D(20, 21).length(), 29);
let v5 = new Vector2D(10, 20);
TS_ASSERT_EQUALS(v5.compareLength(new Vector2D(5, 8)), 1);
TS_ASSERT_EQUALS(v5.compareLength(new Vector2D(500, 800)), -1);
TS_ASSERT_EQUALS(v5.compareLength(new Vector2D(10, 20)), 0);
TS_ASSERT(isNaN(v5.compareLength(brokenVector)));
}
// Test Vector3D
{
let v1 = new Vector3D(2, 5, 14);
TS_ASSERT_EQUALS(v1.distanceTo(new Vector3D()), 15);
TS_ASSERT(isNaN(v1.compareLength(brokenVector)));
let v2 = v1.mult(3);
TS_ASSERT_EQUALS(v2.x, 6);
TS_ASSERT_EQUALS(v2.y, 15);
TS_ASSERT_EQUALS(v2.z, 42);
TS_ASSERT_EQUALS(new Vector3D(1, 2, 3).dot(new Vector3D(4, 5, 6)), 32);
}