1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
7 tvcm.require('tracing.test_utils');
8 tvcm.require('tracing.trace_model.counter');
9 tvcm.require('tracing.trace_model.counter_series');
11 tvcm.unittest.testSuite('tracing.trace_model.counter_test', function() {
12 var Counter = tracing.trace_model.Counter;
13 var CounterSeries = tracing.trace_model.CounterSeries;
14 var CounterSample = tracing.trace_model.CounterSample;
16 var createCounterWithTwoSeries = function() {
17 var ctr = new Counter(null, 0, '', 'myCounter');
18 var aSeries = new CounterSeries('a', 0);
19 var bSeries = new CounterSeries('b', 0);
20 ctr.addSeries(aSeries);
21 ctr.addSeries(bSeries);
23 aSeries.addSample(0, 5);
24 aSeries.addSample(1, 6);
25 aSeries.addSample(2, 5);
26 aSeries.addSample(3, 7);
28 bSeries.addSample(0, 10);
29 bSeries.addSample(1, 15);
30 bSeries.addSample(2, 12);
31 bSeries.addSample(3, 16);
36 test('getSampleStatisticsWithSingleSelection', function() {
37 var ctr = createCounterWithTwoSeries();
38 var ret = ctr.getSampleStatistics([0]);
40 assertEquals(5, ret[0].min);
41 assertEquals(5, ret[0].max);
42 assertEquals(5, ret[0].avg);
43 assertEquals(5, ret[0].start);
44 assertEquals(5, ret[0].end);
46 assertEquals(10, ret[1].min);
47 assertEquals(10, ret[1].max);
48 assertEquals(10, ret[1].avg);
49 assertEquals(10, ret[1].start);
50 assertEquals(10, ret[1].end);
53 test('getSampleStatisticsWithMultipleSelections', function() {
54 var ctr = createCounterWithTwoSeries();
55 var ret = ctr.getSampleStatistics([0, 1]);
57 assertEquals(5, ret[0].min);
58 assertEquals(6, ret[0].max);
59 assertEquals((5 + 6) / 2, ret[0].avg);
60 assertEquals(5, ret[0].start);
61 assertEquals(6, ret[0].end);
63 assertEquals(10, ret[1].min);
64 assertEquals(15, ret[1].max);
65 assertEquals((10 + 15) / 2, ret[1].avg);
66 assertEquals(10, ret[1].start);
67 assertEquals(15, ret[1].end);
70 test('getSampleStatisticsWithOutofOrderIndices', function() {
71 var ctr = createCounterWithTwoSeries();
72 var ret = ctr.getSampleStatistics([1, 0]);
74 assertEquals(5, ret[0].min);
75 assertEquals(6, ret[0].max);
76 assertEquals((5 + 6) / 2, ret[0].avg);
77 assertEquals(5, ret[0].start);
78 assertEquals(6, ret[0].end);
80 assertEquals(10, ret[1].min);
81 assertEquals(15, ret[1].max);
82 assertEquals((10 + 15) / 2, ret[1].avg);
83 assertEquals(10, ret[1].start);
84 assertEquals(15, ret[1].end);
87 test('getSampleStatisticsWithAllSelections', function() {
88 var ctr = createCounterWithTwoSeries();
89 var ret = ctr.getSampleStatistics([1, 0, 2, 3]);
91 assertEquals(5, ret[0].min);
92 assertEquals(7, ret[0].max);
93 assertEquals((5 + 6 + 5 + 7) / 4, ret[0].avg);
94 assertEquals(5, ret[0].start);
95 assertEquals(7, ret[0].end);
97 assertEquals(10, ret[1].min);
98 assertEquals(16, ret[1].max);
99 assertEquals((10 + 15 + 12 + 16) / 4, ret[1].avg);
100 assertEquals(10, ret[1].start);
101 assertEquals(16, ret[1].end);