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.
7 <link rel="import" href="/tvcm/statistics.html">
11 tvcm.unittest.testSuite(function() {
12 var Statistics = tvcm.Statistics;
14 test('sumBasic', function() {
15 assertEquals(6, Statistics.sum([1, 2, 3]));
17 test('sumWithFunctor', function() {
20 assertEquals(12, Statistics.sum(ary, function(x, i) {
21 assertEquals(this, ctx);
22 assertEquals(ary[i], x);
27 test('minMaxWithFunctor', function() {
31 assertEquals(this, ctx);
32 assertEquals(ary[i], x);
35 assertEquals(3, Statistics.max(ary, func, ctx));
36 assertEquals(1, Statistics.min(ary, func, ctx));
38 var range = Statistics.range(ary, func, ctx);
39 assertFalse(range.isEmpty);
40 assertEquals(1, range.min);
41 assertEquals(3, range.max);
44 test('maxExtrema', function() {
45 assertEquals(-Infinity, Statistics.max([]));
46 assertEquals(Infinity, Statistics.min([]));
49 test('mean', function() {
50 assertEquals(2, Statistics.mean([1, 2, 3]));
53 test('varianceAndStdDev', function() {
59 var v = Statistics.mean(ary,
61 assertEquals(ctx, this);
67 test('percentile', function() {
80 assertEquals(ctx, this);
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));