• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE HTML>
2<html>
3<!--
4Copyright (c) 2012 The Chromium Authors. All rights reserved.
5Use of this source code is governed by a BSD-style license that can be
6found in the LICENSE file.
7-->
8<head>
9<title>Counter tests</title>
10<script src="/src/base.js"></script>
11<script>
12  base.require('unittest');
13  base.require('test_utils');
14  base.require('model.counter');
15</script>
16</head>
17<body>
18<script>
19  'use strict';
20
21  var Counter = tracing.model.Counter;
22
23  function createCounterWithTwoSeries() {
24    var ctr = new Counter(null, 0, '', 'myCounter');
25    ctr.seriesNames.push('a', 'b');
26    ctr.seriesColors.push(0, 1);
27    ctr.timestamps.push(0, 1, 2, 3);
28    ctr.samples.push(5, 10, 6, 15, 5, 12, 7, 16);
29    return ctr;
30  }
31
32  function testGetSampleStatisticsWithSingleSelection() {
33    var ctr = createCounterWithTwoSeries();
34    var ret = ctr.getSampleStatistics([0]);
35
36    assertEquals(5, ret[0].min);
37    assertEquals(5, ret[0].max);
38    assertEquals(5, ret[0].avg);
39    assertEquals(5, ret[0].start);
40    assertEquals(5, ret[0].end);
41
42    assertEquals(10, ret[1].min);
43    assertEquals(10, ret[1].max);
44    assertEquals(10, ret[1].avg);
45    assertEquals(10, ret[1].start);
46    assertEquals(10, ret[1].end);
47  }
48
49  function testGetSampleStatisticsWithMultipleSelections() {
50    var ctr = createCounterWithTwoSeries();
51    var ret = ctr.getSampleStatistics([0, 1]);
52
53    assertEquals(5, ret[0].min);
54    assertEquals(6, ret[0].max);
55    assertEquals((5 + 6) / 2, ret[0].avg);
56    assertEquals(5, ret[0].start);
57    assertEquals(6, ret[0].end);
58
59    assertEquals(10, ret[1].min);
60    assertEquals(15, ret[1].max);
61    assertEquals((10 + 15) / 2, ret[1].avg);
62    assertEquals(10, ret[1].start);
63    assertEquals(15, ret[1].end);
64  }
65
66  function testGetSampleStatisticsWithOutofOrderIndices() {
67    var ctr = createCounterWithTwoSeries();
68    var ret = ctr.getSampleStatistics([1, 0]);
69
70    assertEquals(5, ret[0].min);
71    assertEquals(6, ret[0].max);
72    assertEquals((5 + 6) / 2, ret[0].avg);
73    assertEquals(5, ret[0].start);
74    assertEquals(6, ret[0].end);
75
76    assertEquals(10, ret[1].min);
77    assertEquals(15, ret[1].max);
78    assertEquals((10 + 15) / 2, ret[1].avg);
79    assertEquals(10, ret[1].start);
80    assertEquals(15, ret[1].end);
81  }
82
83  function testGetSampleStatisticsWithAllSelections() {
84    var ctr = createCounterWithTwoSeries();
85    var ret = ctr.getSampleStatistics([1, 0, 2, 3]);
86
87    assertEquals(5, ret[0].min);
88    assertEquals(7, ret[0].max);
89    assertEquals((5 + 6 + 5 + 7) / 4, ret[0].avg);
90    assertEquals(5, ret[0].start);
91    assertEquals(7, ret[0].end);
92
93    assertEquals(10, ret[1].min);
94    assertEquals(16, ret[1].max);
95    assertEquals((10 + 15 + 12 + 16) / 4, ret[1].avg);
96    assertEquals(10, ret[1].start);
97    assertEquals(16, ret[1].end);
98  }
99
100</script>
101</body>
102</html>
103