Home | History | Annotate | Download | only in model
      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