107 lines
3.7 KiB
JavaScript
107 lines
3.7 KiB
JavaScript
|
|
defineSuite([
|
||
|
|
'Core/EncodedCartesian3',
|
||
|
|
'Core/Cartesian3'
|
||
|
|
], function(
|
||
|
|
EncodedCartesian3,
|
||
|
|
Cartesian3) {
|
||
|
|
'use strict';
|
||
|
|
|
||
|
|
it('construct with default values', function() {
|
||
|
|
var encoded = new EncodedCartesian3();
|
||
|
|
expect(encoded.high).toEqual(Cartesian3.ZERO);
|
||
|
|
expect(encoded.low).toEqual(Cartesian3.ZERO);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('endcode encodes a positive value', function() {
|
||
|
|
var encoded = EncodedCartesian3.encode(-10000000.0);
|
||
|
|
expect(encoded.high + encoded.low).toEqual(-10000000.0);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('endcode encodes a negative value', function() {
|
||
|
|
var encoded = EncodedCartesian3.encode(10000000.0);
|
||
|
|
expect(encoded.high + encoded.low).toEqual(10000000.0);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('endcode encodes with a result parameter', function() {
|
||
|
|
var result = {
|
||
|
|
high : 0.0,
|
||
|
|
low : 0.0
|
||
|
|
};
|
||
|
|
var returnedResult = EncodedCartesian3.encode(0.0, result);
|
||
|
|
expect(result).toBe(returnedResult);
|
||
|
|
expect(returnedResult.high + returnedResult.low).toEqual(0.0);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('fromCartesian encodes a cartesian', function() {
|
||
|
|
var c = new Cartesian3(-10000000.0, 0.0, 10000000.0);
|
||
|
|
var encoded = EncodedCartesian3.fromCartesian(c);
|
||
|
|
|
||
|
|
// Look mom, no epsilon check.
|
||
|
|
expect(encoded.high.x + encoded.low.x).toEqual(-10000000.0);
|
||
|
|
expect(encoded.high.y + encoded.low.y).toEqual(0.0);
|
||
|
|
expect(encoded.high.z + encoded.low.z).toEqual(10000000.0);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('fromCartesian encodes a cartesian with a result parameter', function() {
|
||
|
|
var p = new Cartesian3(-10000000.0, 0.0, 10000000.0);
|
||
|
|
var encoded = EncodedCartesian3.fromCartesian(p);
|
||
|
|
|
||
|
|
var positions = new Float32Array(6);
|
||
|
|
EncodedCartesian3.writeElements(p, positions, 0);
|
||
|
|
|
||
|
|
expect(encoded.high.x).toEqual(positions[0]);
|
||
|
|
expect(encoded.high.y).toEqual(positions[1]);
|
||
|
|
expect(encoded.high.z).toEqual(positions[2]);
|
||
|
|
expect(encoded.low.x).toEqual(positions[3]);
|
||
|
|
expect(encoded.low.y).toEqual(positions[4]);
|
||
|
|
expect(encoded.low.z).toEqual(positions[5]);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('writeElements encodes a cartesian', function() {
|
||
|
|
var c = new Cartesian3(-10000000.0, 0.0, 10000000.0);
|
||
|
|
var encoded = new EncodedCartesian3();
|
||
|
|
var encoded2 = EncodedCartesian3.fromCartesian(c, encoded);
|
||
|
|
|
||
|
|
expect(encoded2).toBe(encoded);
|
||
|
|
expect(encoded.high.x + encoded.low.x).toEqual(-10000000.0);
|
||
|
|
expect(encoded.high.y + encoded.low.y).toEqual(0.0);
|
||
|
|
expect(encoded.high.z + encoded.low.z).toEqual(10000000.0);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('encode throws without a value', function() {
|
||
|
|
expect(function() {
|
||
|
|
EncodedCartesian3.encode();
|
||
|
|
}).toThrowDeveloperError();
|
||
|
|
});
|
||
|
|
|
||
|
|
it('fromCartesian throws without a cartesian', function() {
|
||
|
|
expect(function() {
|
||
|
|
EncodedCartesian3.fromCartesian();
|
||
|
|
}).toThrowDeveloperError();
|
||
|
|
});
|
||
|
|
|
||
|
|
it('writeElements throws without a cartesian', function() {
|
||
|
|
expect(function() {
|
||
|
|
EncodedCartesian3.writeElements();
|
||
|
|
}).toThrowDeveloperError();
|
||
|
|
});
|
||
|
|
|
||
|
|
it('writeElements throws without a cartesianArray', function() {
|
||
|
|
expect(function() {
|
||
|
|
EncodedCartesian3.writeElements(new Cartesian3());
|
||
|
|
}).toThrowDeveloperError();
|
||
|
|
});
|
||
|
|
|
||
|
|
it('writeElements throws without an index', function() {
|
||
|
|
expect(function() {
|
||
|
|
EncodedCartesian3.writeElements(new Cartesian3(), new Float32Array(6));
|
||
|
|
}).toThrowDeveloperError();
|
||
|
|
});
|
||
|
|
|
||
|
|
it('writeElements throws with a negative index', function() {
|
||
|
|
expect(function() {
|
||
|
|
EncodedCartesian3.writeElements(new Cartesian3(), new Float32Array(6), -1);
|
||
|
|
}).toThrowDeveloperError();
|
||
|
|
});
|
||
|
|
});
|