blob: 2ec5e57b370c2795d7d29ff53233ef8bb75b6a1d [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2013 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="/core/test_utils.html">
<link rel="import" href="/model/counter.html">
<link rel="import" href="/model/counter_series.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
var Counter = tr.model.Counter;
var CounterSeries = tr.model.CounterSeries;
var CounterSample = tr.model.CounterSample;
var createCounterWithTwoSeries = function() {
var ctr = new Counter(null, 0, '', 'myCounter');
var aSeries = new CounterSeries('a', 0);
var bSeries = new CounterSeries('b', 0);
ctr.addSeries(aSeries);
ctr.addSeries(bSeries);
aSeries.addCounterSample(0, 5);
aSeries.addCounterSample(1, 6);
aSeries.addCounterSample(2, 5);
aSeries.addCounterSample(3, 7);
bSeries.addCounterSample(0, 10);
bSeries.addCounterSample(1, 15);
bSeries.addCounterSample(2, 12);
bSeries.addCounterSample(3, 16);
return ctr;
};
test('getSampleStatisticsWithSingleSelection', function() {
var ctr = createCounterWithTwoSeries();
var ret = ctr.getSampleStatistics([0]);
assert.equal(ret[0].min, 5);
assert.equal(ret[0].max, 5);
assert.equal(ret[0].avg, 5);
assert.equal(ret[0].start, 5);
assert.equal(ret[0].end, 5);
assert.equal(ret[1].min, 10);
assert.equal(ret[1].max, 10);
assert.equal(ret[1].avg, 10);
assert.equal(ret[1].start, 10);
assert.equal(ret[1].end, 10);
});
test('getSampleStatisticsWithMultipleSelections', function() {
var ctr = createCounterWithTwoSeries();
var ret = ctr.getSampleStatistics([0, 1]);
assert.equal(ret[0].min, 5);
assert.equal(ret[0].max, 6);
assert.equal(ret[0].avg, (5 + 6) / 2);
assert.equal(ret[0].start, 5);
assert.equal(ret[0].end, 6);
assert.equal(ret[1].min, 10);
assert.equal(ret[1].max, 15);
assert.equal(ret[1].avg, (10 + 15) / 2);
assert.equal(ret[1].start, 10);
assert.equal(ret[1].end, 15);
});
test('getSampleStatisticsWithOutofOrderIndices', function() {
var ctr = createCounterWithTwoSeries();
var ret = ctr.getSampleStatistics([1, 0]);
assert.equal(ret[0].min, 5);
assert.equal(ret[0].max, 6);
assert.equal(ret[0].avg, (5 + 6) / 2);
assert.equal(ret[0].start, 5);
assert.equal(ret[0].end, 6);
assert.equal(ret[1].min, 10);
assert.equal(ret[1].max, 15);
assert.equal(ret[1].avg, (10 + 15) / 2);
assert.equal(ret[1].start, 10);
assert.equal(ret[1].end, 15);
});
test('getSampleStatisticsWithAllSelections', function() {
var ctr = createCounterWithTwoSeries();
var ret = ctr.getSampleStatistics([1, 0, 2, 3]);
assert.equal(ret[0].min, 5);
assert.equal(ret[0].max, 7);
assert.equal(ret[0].avg, (5 + 6 + 5 + 7) / 4);
assert.equal(ret[0].start, 5);
assert.equal(ret[0].end, 7);
assert.equal(ret[1].min, 10);
assert.equal(ret[1].max, 16);
assert.equal(ret[1].avg, (10 + 15 + 12 + 16) / 4);
assert.equal(ret[1].start, 10);
assert.equal(ret[1].end, 16);
});
});
</script>