3 Copyright (c) 2013 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
8 <link rel="import" href="/tracing/test_utils.html">
9 <link rel="import" href="/tracing/trace_model/counter.html">
10 <link rel="import" href="/tracing/trace_model/counter_series.html">
15 tv.unittest.testSuite(function() {
16 var Counter = tracing.trace_model.Counter;
17 var CounterSeries = tracing.trace_model.CounterSeries;
18 var CounterSample = tracing.trace_model.CounterSample;
20 var createCounterWithTwoSeries = function() {
21 var ctr = new Counter(null, 0, '', 'myCounter');
22 var aSeries = new CounterSeries('a', 0);
23 var bSeries = new CounterSeries('b', 0);
24 ctr.addSeries(aSeries);
25 ctr.addSeries(bSeries);
27 aSeries.addCounterSample(0, 5);
28 aSeries.addCounterSample(1, 6);
29 aSeries.addCounterSample(2, 5);
30 aSeries.addCounterSample(3, 7);
32 bSeries.addCounterSample(0, 10);
33 bSeries.addCounterSample(1, 15);
34 bSeries.addCounterSample(2, 12);
35 bSeries.addCounterSample(3, 16);
40 test('getSampleStatisticsWithSingleSelection', function() {
41 var ctr = createCounterWithTwoSeries();
42 var ret = ctr.getSampleStatistics([0]);
44 assertEquals(5, ret[0].min);
45 assertEquals(5, ret[0].max);
46 assertEquals(5, ret[0].avg);
47 assertEquals(5, ret[0].start);
48 assertEquals(5, ret[0].end);
50 assertEquals(10, ret[1].min);
51 assertEquals(10, ret[1].max);
52 assertEquals(10, ret[1].avg);
53 assertEquals(10, ret[1].start);
54 assertEquals(10, ret[1].end);
57 test('getSampleStatisticsWithMultipleSelections', function() {
58 var ctr = createCounterWithTwoSeries();
59 var ret = ctr.getSampleStatistics([0, 1]);
61 assertEquals(5, ret[0].min);
62 assertEquals(6, ret[0].max);
63 assertEquals((5 + 6) / 2, ret[0].avg);
64 assertEquals(5, ret[0].start);
65 assertEquals(6, ret[0].end);
67 assertEquals(10, ret[1].min);
68 assertEquals(15, ret[1].max);
69 assertEquals((10 + 15) / 2, ret[1].avg);
70 assertEquals(10, ret[1].start);
71 assertEquals(15, ret[1].end);
74 test('getSampleStatisticsWithOutofOrderIndices', function() {
75 var ctr = createCounterWithTwoSeries();
76 var ret = ctr.getSampleStatistics([1, 0]);
78 assertEquals(5, ret[0].min);
79 assertEquals(6, ret[0].max);
80 assertEquals((5 + 6) / 2, ret[0].avg);
81 assertEquals(5, ret[0].start);
82 assertEquals(6, ret[0].end);
84 assertEquals(10, ret[1].min);
85 assertEquals(15, ret[1].max);
86 assertEquals((10 + 15) / 2, ret[1].avg);
87 assertEquals(10, ret[1].start);
88 assertEquals(15, ret[1].end);
91 test('getSampleStatisticsWithAllSelections', function() {
92 var ctr = createCounterWithTwoSeries();
93 var ret = ctr.getSampleStatistics([1, 0, 2, 3]);
95 assertEquals(5, ret[0].min);
96 assertEquals(7, ret[0].max);
97 assertEquals((5 + 6 + 5 + 7) / 4, ret[0].avg);
98 assertEquals(5, ret[0].start);
99 assertEquals(7, ret[0].end);
101 assertEquals(10, ret[1].min);
102 assertEquals(16, ret[1].max);
103 assertEquals((10 + 15 + 12 + 16) / 4, ret[1].avg);
104 assertEquals(10, ret[1].start);
105 assertEquals(16, ret[1].end);