blob: 10bb85ff030d2bb55fe3496cbdde5f7c75b94b7d [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2015 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<link rel="import" href="/tracing/model/device.html">
<link rel="import" href="/tracing/model/model.html">
<link rel="import" href="/tracing/model/power_series.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
var Model = tr.Model;
var PowerSeries = tr.model.PowerSeries;
test('stableId', function() {
var device = { stableId: 'test' };
var series = new PowerSeries(device);
assert.equal(series.stableId, 'test.PowerSeries');
});
test('device', function() {
var device = new tr.model.Device(new Model());
var series = new PowerSeries(device);
assert.equal(series.device, device);
});
test('addPowerSample', function() {
var series = new PowerSeries(new Model().device);
assert.equal(series.samples.length, 0);
var sample1 = series.addPowerSample(0, 1);
var sample2 = series.addPowerSample(1, 2);
assert.deepEqual(series.samples, [sample1, sample2]);
});
test('getEnergyConsumed_oneInterval', function() {
var series = new PowerSeries(new Model().device);
series.addPowerSample(0, 1);
series.addPowerSample(1000, 2);
assert.equal(series.getEnergyConsumedInJ(0, 1000), 1);
});
test('getEnergyConsumed_twoIntervals', function() {
var series = new PowerSeries(new Model().device);
series.addPowerSample(0, 1);
series.addPowerSample(1000, 2);
series.addPowerSample(2000, 2);
assert.equal(series.getEnergyConsumedInJ(0, 2000), 3);
});
test('getEnergyConsumed_oneSample', function() {
var series = new PowerSeries(new Model().device);
series.addPowerSample(1000, 1);
assert.equal(series.getEnergyConsumedInJ(0, 2000), 0);
});
test('getEnergyConsumed_samplesAfterStart', function() {
var series = new PowerSeries(new Model().device);
series.addPowerSample(1000, 1);
series.addPowerSample(2000, 2);
assert.equal(series.getEnergyConsumedInJ(0, 2000), 1);
});
test('getEnergyConsumed_extraSamplesBeforeStart', function() {
var series = new PowerSeries(new Model().device);
series.addPowerSample(0, 10);
series.addPowerSample(1000, 1);
series.addPowerSample(2000, 1);
series.addPowerSample(3000, 1);
assert.equal(series.getEnergyConsumedInJ(2000, 4000), 1);
});
test('getEnergyConsumed_extraSamplesAfterEnd', function() {
var series = new PowerSeries(new Model().device);
series.addPowerSample(0, 1);
series.addPowerSample(1000, 1);
series.addPowerSample(2000, 1);
series.addPowerSample(3000, 10);
assert.equal(series.getEnergyConsumedInJ(0, 2000), 2);
});
test('shiftTimestampsForward', function() {
var series = new PowerSeries(new Model().device);
series.addPowerSample(0, 1);
series.addPowerSample(1, 2);
series.shiftTimestampsForward(2);
assert.equal(series.samples[0].start, 2);
assert.equal(series.samples[1].start, 3);
series.shiftTimestampsForward(-4);
assert.equal(series.samples[0].start, -2);
assert.equal(series.samples[1].start, -1);
});
test('updateBounds', function() {
var series = new PowerSeries(new Model().device);
series.addPowerSample(0, 1);
series.addPowerSample(1, 2);
series.updateBounds();
assert.equal(series.bounds.min, 0);
assert.equal(series.bounds.max, 1);
series.addPowerSample(4, 3);
series.updateBounds();
assert.equal(series.bounds.min, 0);
assert.equal(series.bounds.max, 4);
});
test('childEvents_empty', function() {
var series = new PowerSeries(new Model().device);
var eventsInSeries = [];
for (var event of series.childEvents())
eventsInSeries.push(event);
assert.deepEqual(eventsInSeries, []);
});
test('childEvents_nonempty', function() {
var series = new PowerSeries(new Model().device);
var sample1 = series.addPowerSample(0, 1);
var sample2 = series.addPowerSample(1, 2);
var eventsInSeries = [];
for (var event of series.childEvents())
eventsInSeries.push(event);
assert.deepEqual(eventsInSeries, [sample1, sample2]);
});
});
</script>