1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 Copyright (c) 2012 The Chromium Authors. All rights reserved. 5 Use of this source code is governed by a BSD-style license that can be 6 found 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