Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / src / tracing / trace_model / counter_test.js
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.
4
5 'use strict';
6
7 tvcm.require('tracing.test_utils');
8 tvcm.require('tracing.trace_model.counter');
9 tvcm.require('tracing.trace_model.counter_series');
10
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;
15
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);
22
23     aSeries.addSample(0, 5);
24     aSeries.addSample(1, 6);
25     aSeries.addSample(2, 5);
26     aSeries.addSample(3, 7);
27
28     bSeries.addSample(0, 10);
29     bSeries.addSample(1, 15);
30     bSeries.addSample(2, 12);
31     bSeries.addSample(3, 16);
32
33     return ctr;
34   };
35
36   test('getSampleStatisticsWithSingleSelection', function() {
37     var ctr = createCounterWithTwoSeries();
38     var ret = ctr.getSampleStatistics([0]);
39
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);
45
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);
51   });
52
53   test('getSampleStatisticsWithMultipleSelections', function() {
54     var ctr = createCounterWithTwoSeries();
55     var ret = ctr.getSampleStatistics([0, 1]);
56
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);
62
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);
68   });
69
70   test('getSampleStatisticsWithOutofOrderIndices', function() {
71     var ctr = createCounterWithTwoSeries();
72     var ret = ctr.getSampleStatistics([1, 0]);
73
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);
79
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);
85   });
86
87   test('getSampleStatisticsWithAllSelections', function() {
88     var ctr = createCounterWithTwoSeries();
89     var ret = ctr.getSampleStatistics([1, 0, 2, 3]);
90
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);
96
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);
102   });
103 });