Upstream version 11.39.266.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / third_party / tvcm / src / tvcm / statistics_test.html
1 <!DOCTYPE html>
2 <!--
3 Copyright (c) 2014 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
6 -->
7 <link rel="import" href="/tvcm/statistics.html">
8 <script>
9 'use strict';
10
11 tvcm.unittest.testSuite(function() {
12   var Statistics = tvcm.Statistics;
13
14   test('sumBasic', function() {
15     assertEquals(6, Statistics.sum([1, 2, 3]));
16   });
17   test('sumWithFunctor', function() {
18     var ctx = {};
19     var ary = [1, 2, 3];
20     assertEquals(12, Statistics.sum(ary, function(x, i) {
21       assertEquals(this, ctx);
22       assertEquals(ary[i], x);
23       return x * 2;
24     }, ctx));
25   });
26
27   test('minMaxWithFunctor', function() {
28     var ctx = {};
29     var ary = [1, 2, 3];
30     function func(x, i) {
31       assertEquals(this, ctx);
32       assertEquals(ary[i], x);
33       return x;
34     }
35     assertEquals(3, Statistics.max(ary, func, ctx));
36     assertEquals(1, Statistics.min(ary, func, ctx));
37
38     var range = Statistics.range(ary, func, ctx);
39     assertFalse(range.isEmpty);
40     assertEquals(1, range.min);
41     assertEquals(3, range.max);
42   });
43
44   test('maxExtrema', function() {
45     assertEquals(-Infinity, Statistics.max([]));
46     assertEquals(Infinity, Statistics.min([]));
47   });
48
49   test('mean', function() {
50     assertEquals(2, Statistics.mean([1, 2, 3]));
51   });
52
53   test('varianceAndStdDev', function() {
54     var ctx = {};
55     var ary = [{x: 2},
56                {x: 4},
57                {x: 4},
58                {x: 2}];
59     var v = Statistics.mean(ary,
60                             function(d) {
61                               assertEquals(ctx, this);
62                               return d.x;
63                             }, ctx);
64     assertEquals(3, v);
65   });
66
67   test('percentile', function() {
68     var ctx = {};
69     var ary = [{x: 0},
70                {x: 1},
71                {x: 2},
72                {x: 3},
73                {x: 4},
74                {x: 5},
75                {x: 6},
76                {x: 7},
77                {x: 8},
78                {x: 9}];
79     function func(d, i) {
80       assertEquals(ctx, this);
81       return d.x;
82     }
83     assertEquals(0, Statistics.percentile(ary, 0, func, ctx));
84     assertEquals(4, Statistics.percentile(ary, .5, func, ctx));
85     assertEquals(6, Statistics.percentile(ary, .75, func, ctx));
86     assertEquals(9, Statistics.percentile(ary, 1, func, ctx));
87   });
88
89 });
90 </script>