mirror of
https://github.com/nasa/openmct.git
synced 2024-12-27 08:32:28 +00:00
87 lines
3.8 KiB
JavaScript
87 lines
3.8 KiB
JavaScript
/*****************************************************************************
|
|
* Open MCT, Copyright (c) 2009-2016, United States Government
|
|
* as represented by the Administrator of the National Aeronautics and Space
|
|
* Administration. All rights reserved.
|
|
*
|
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
* License for the specific language governing permissions and limitations
|
|
* under the License.
|
|
*
|
|
* Open MCT includes source code licensed under additional open source
|
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
* this source code distribution or the Licensing information page available
|
|
* at runtime from the About dialog for additional information.
|
|
*****************************************************************************/
|
|
|
|
define(
|
|
['../../src/capabilities/CumulativeGraph'],
|
|
function (CumulativeGraph) {
|
|
|
|
describe("A cumulative resource graph", function () {
|
|
var mockGraph,
|
|
points,
|
|
graph;
|
|
|
|
beforeEach(function () {
|
|
points = [0, 10, -10, -100, 20, 100, 0];
|
|
|
|
mockGraph = jasmine.createSpyObj(
|
|
'graph',
|
|
['getPointCount', 'getDomainValue', 'getRangeValue']
|
|
);
|
|
|
|
mockGraph.getPointCount.andReturn(points.length * 2);
|
|
mockGraph.getDomainValue.andCallFake(function (i) {
|
|
return Math.floor(i / 2) * 100 + 25;
|
|
});
|
|
mockGraph.getRangeValue.andCallFake(function (i) {
|
|
return points[Math.floor(i / 2) + i % 2];
|
|
});
|
|
|
|
graph = new CumulativeGraph(
|
|
mockGraph,
|
|
1000,
|
|
2000,
|
|
1500,
|
|
1 / 10
|
|
);
|
|
});
|
|
|
|
it("accumulates its wrapped instantaneous graph", function () {
|
|
// Note that range values are percentages
|
|
expect(graph.getDomainValue(0)).toEqual(0);
|
|
expect(graph.getRangeValue(0)).toEqual(50); // initial state
|
|
expect(graph.getDomainValue(1)).toEqual(25);
|
|
expect(graph.getRangeValue(1)).toEqual(50); // initial state
|
|
expect(graph.getDomainValue(2)).toEqual(125);
|
|
expect(graph.getRangeValue(2)).toEqual(60); // +10
|
|
expect(graph.getDomainValue(3)).toEqual(225);
|
|
expect(graph.getRangeValue(3)).toEqual(50); // -10
|
|
expect(graph.getDomainValue(4)).toEqual(275);
|
|
expect(graph.getRangeValue(4)).toEqual(0); // -100 (hit bottom)
|
|
expect(graph.getDomainValue(5)).toEqual(325);
|
|
expect(graph.getRangeValue(5)).toEqual(0); // still at 0...
|
|
expect(graph.getDomainValue(6)).toEqual(425);
|
|
expect(graph.getRangeValue(6)).toEqual(20); // +20
|
|
expect(graph.getDomainValue(7)).toEqual(505);
|
|
expect(graph.getRangeValue(7)).toEqual(100); // +100
|
|
expect(graph.getDomainValue(8)).toEqual(525);
|
|
expect(graph.getRangeValue(8)).toEqual(100); // still full
|
|
expect(graph.getDomainValue(9)).toEqual(625);
|
|
expect(graph.getRangeValue(9)).toEqual(100); // still full
|
|
expect(graph.getPointCount()).toEqual(10);
|
|
});
|
|
|
|
|
|
|
|
});
|
|
}
|
|
);
|