mirror of
https://github.com/nasa/openmct.git
synced 2025-06-13 12:48:14 +00:00
[Plot] Begin separating out plot line handling
Begin separating out plot line buffer from the rest of plot; managing this buffer separately will aid in merging realtime and hsitorical data, WTD-806.
This commit is contained in:
72
platform/features/plot/test/elements/PlotLineBufferSpec.js
Normal file
72
platform/features/plot/test/elements/PlotLineBufferSpec.js
Normal file
@ -0,0 +1,72 @@
|
||||
/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/
|
||||
|
||||
/**
|
||||
* MergeModelsSpec. Created by vwoeltje on 11/6/14.
|
||||
*/
|
||||
define(
|
||||
["../../src/elements/PlotLineBuffer"],
|
||||
function (PlotLineBuffer) {
|
||||
"use strict";
|
||||
|
||||
var TEST_INITIAL_SIZE = 10,
|
||||
TEST_MAX_SIZE = 40,
|
||||
TEST_DOMAIN_OFFSET = 42;
|
||||
|
||||
describe("A plot line buffer", function () {
|
||||
var mockSeries,
|
||||
testDomainValues,
|
||||
testRangeValues,
|
||||
buffer;
|
||||
|
||||
beforeEach(function () {
|
||||
testDomainValues = [ 1, 3, 7, 9, 14, 15 ];
|
||||
testRangeValues = [ 8, 0, 3, 9, 8, 11 ];
|
||||
mockSeries = jasmine.createSpyObj(
|
||||
"series",
|
||||
['getPointCount', 'getDomainValue', 'getRangeValue']
|
||||
);
|
||||
mockSeries.getPointCount.andCallFake(function () {
|
||||
return testDomainValues.length;
|
||||
});
|
||||
mockSeries.getDomainValue.andCallFake(function (i) {
|
||||
return testDomainValues[i];
|
||||
});
|
||||
mockSeries.getRangeValue.andCallFake(function (i) {
|
||||
return testRangeValues[i];
|
||||
});
|
||||
|
||||
buffer = new PlotLineBuffer(
|
||||
TEST_DOMAIN_OFFSET,
|
||||
TEST_INITIAL_SIZE,
|
||||
TEST_MAX_SIZE
|
||||
);
|
||||
|
||||
// Start with some data in there
|
||||
buffer.insert(mockSeries, 0);
|
||||
});
|
||||
|
||||
it("allows insertion of series data", function () {
|
||||
// Convert to a regular array for checking.
|
||||
// Verify that domain/ranges were interleaved and
|
||||
// that domain offset was adjusted for.
|
||||
expect(
|
||||
Array.prototype.slice.call(buffer.getBuffer()).slice(0, 12)
|
||||
).toEqual([ -41, 8, -39, 0, -35, 3, -33, 9, -28, 8, -27, 11]);
|
||||
});
|
||||
|
||||
it("finds insertion indexes", function () {
|
||||
expect(buffer.findInsertionIndex(0)).toEqual(0);
|
||||
expect(buffer.findInsertionIndex(2)).toEqual(1);
|
||||
expect(buffer.findInsertionIndex(5)).toEqual(2);
|
||||
expect(buffer.findInsertionIndex(10)).toEqual(4);
|
||||
expect(buffer.findInsertionIndex(14.5)).toEqual(5);
|
||||
expect(buffer.findInsertionIndex(20)).toEqual(6);
|
||||
|
||||
// 9 is already in there, disallow insertion
|
||||
expect(buffer.findInsertionIndex(9)).toEqual(-1);
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
);
|
Reference in New Issue
Block a user