113 lines
4.5 KiB
JavaScript
113 lines
4.5 KiB
JavaScript
|
|
defineSuite([
|
||
|
|
'DataSources/PositionPropertyArray',
|
||
|
|
'Core/Cartesian3',
|
||
|
|
'Core/JulianDate',
|
||
|
|
'Core/ReferenceFrame',
|
||
|
|
'DataSources/ConstantPositionProperty',
|
||
|
|
'DataSources/SampledPositionProperty'
|
||
|
|
], function(
|
||
|
|
PositionPropertyArray,
|
||
|
|
Cartesian3,
|
||
|
|
JulianDate,
|
||
|
|
ReferenceFrame,
|
||
|
|
ConstantPositionProperty,
|
||
|
|
SampledPositionProperty) {
|
||
|
|
'use strict';
|
||
|
|
|
||
|
|
var time = JulianDate.now();
|
||
|
|
|
||
|
|
it('default constructor sets expected values', function() {
|
||
|
|
var property = new PositionPropertyArray();
|
||
|
|
expect(property.isConstant).toBe(true);
|
||
|
|
expect(property.getValue(time)).toBeUndefined();
|
||
|
|
});
|
||
|
|
|
||
|
|
it('constructor sets expected values', function() {
|
||
|
|
var expected = [Cartesian3.UNIT_X, Cartesian3.UNIT_Z];
|
||
|
|
var value = [new ConstantPositionProperty(Cartesian3.UNIT_X), new ConstantPositionProperty(Cartesian3.UNIT_Z)];
|
||
|
|
var property = new PositionPropertyArray(value);
|
||
|
|
expect(property.getValue(time)).toEqual(expected);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('setValue raises definitionChanged event', function() {
|
||
|
|
var property = new PositionPropertyArray();
|
||
|
|
var listener = jasmine.createSpy('listener');
|
||
|
|
property.definitionChanged.addEventListener(listener);
|
||
|
|
property.setValue([]);
|
||
|
|
expect(listener).toHaveBeenCalledWith(property);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('changing array member raises definitionChanged event', function() {
|
||
|
|
var property = new PositionPropertyArray();
|
||
|
|
var item = new ConstantPositionProperty(Cartesian3.UNIT_X);
|
||
|
|
property.setValue([item]);
|
||
|
|
var listener = jasmine.createSpy('listener');
|
||
|
|
property.definitionChanged.addEventListener(listener);
|
||
|
|
item.setValue(Cartesian3.UNIT_Z);
|
||
|
|
expect(listener).toHaveBeenCalledWith(property);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('works with result parameter', function() {
|
||
|
|
var expected = [Cartesian3.UNIT_X, Cartesian3.UNIT_Z];
|
||
|
|
var expectedResult = [];
|
||
|
|
var value = [new ConstantPositionProperty(Cartesian3.UNIT_X), new ConstantPositionProperty(Cartesian3.UNIT_Z)];
|
||
|
|
var property = new PositionPropertyArray(value);
|
||
|
|
var result = property.getValue(time, expectedResult);
|
||
|
|
expect(result).toEqual(expected);
|
||
|
|
expect(result).toBe(expectedResult);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('works with reference frame parameter', function() {
|
||
|
|
var value = [new ConstantPositionProperty(Cartesian3.UNIT_X, ReferenceFrame.INERTIAL), new ConstantPositionProperty(Cartesian3.UNIT_Z, ReferenceFrame.FIXED)];
|
||
|
|
var expected = [value[0].getValueInReferenceFrame(time, ReferenceFrame.INERTIAL), value[1].getValueInReferenceFrame(time, ReferenceFrame.INERTIAL)];
|
||
|
|
var property = new PositionPropertyArray(value);
|
||
|
|
var result = property.getValueInReferenceFrame(time, ReferenceFrame.INERTIAL);
|
||
|
|
expect(result).toEqual(expected);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('works with undefined value', function() {
|
||
|
|
var property = new PositionPropertyArray();
|
||
|
|
property.setValue(undefined);
|
||
|
|
expect(property.getValue(time)).toBeUndefined();
|
||
|
|
});
|
||
|
|
|
||
|
|
it('works with undefined propertyvalue', function() {
|
||
|
|
var property = new PositionPropertyArray();
|
||
|
|
property.setValue([new ConstantPositionProperty()]);
|
||
|
|
expect(property.getValue(time)).toEqual([]);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('works with empty array', function() {
|
||
|
|
var property = new PositionPropertyArray();
|
||
|
|
property.setValue([]);
|
||
|
|
expect(property.getValue(time)).toEqual([]);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('equals works', function() {
|
||
|
|
var left = new PositionPropertyArray([new ConstantPositionProperty(Cartesian3.UNIT_X)]);
|
||
|
|
var right = new PositionPropertyArray([new ConstantPositionProperty(Cartesian3.UNIT_X)]);
|
||
|
|
|
||
|
|
expect(left.equals(right)).toEqual(true);
|
||
|
|
|
||
|
|
right = new PositionPropertyArray([new ConstantPositionProperty(Cartesian3.UNIT_Z)]);
|
||
|
|
expect(left.equals(right)).toEqual(false);
|
||
|
|
|
||
|
|
left = new PositionPropertyArray();
|
||
|
|
right = new PositionPropertyArray();
|
||
|
|
expect(left.equals(right)).toEqual(true);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('isConstant is true only if all members are constant', function() {
|
||
|
|
var property = new PositionPropertyArray();
|
||
|
|
|
||
|
|
property.setValue([new ConstantPositionProperty(Cartesian3.UNIT_X)]);
|
||
|
|
expect(property.isConstant).toBe(true);
|
||
|
|
|
||
|
|
var sampledProperty = new SampledPositionProperty();
|
||
|
|
sampledProperty.addSample(time, Cartesian3.UNIT_X);
|
||
|
|
property.setValue([new ConstantPositionProperty(Cartesian3.UNIT_Z), sampledProperty]);
|
||
|
|
|
||
|
|
expect(property.isConstant).toBe(false);
|
||
|
|
});
|
||
|
|
});
|