| <!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> |
| |