Index: tools/telemetry/telemetry/value/list_of_scalar_values_unittest.py |
diff --git a/tools/telemetry/telemetry/value/list_of_scalar_values_unittest.py b/tools/telemetry/telemetry/value/list_of_scalar_values_unittest.py |
deleted file mode 100644 |
index 87231032e5f3d8f5a9fb318c33ba8b510f077bd2..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/value/list_of_scalar_values_unittest.py |
+++ /dev/null |
@@ -1,290 +0,0 @@ |
-# Copyright 2013 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
-import os |
-import unittest |
- |
-from telemetry import story |
-from telemetry import page as page_module |
-from telemetry import value |
-from telemetry.value import improvement_direction |
-from telemetry.value import list_of_scalar_values |
-from telemetry.value import none_values |
- |
- |
-class StatisticComputationTest(unittest.TestCase): |
- def testVariance(self): |
- self.assertAlmostEqual( |
- list_of_scalar_values.Variance([]), 0) |
- self.assertAlmostEqual( |
- list_of_scalar_values.Variance([3]), 0) |
- self.assertAlmostEqual( |
- list_of_scalar_values.Variance([600, 470, 170, 430, 300]), 27130) |
- |
- def testStandardDeviation(self): |
- self.assertAlmostEqual( |
- list_of_scalar_values.StandardDeviation([]), 0) |
- self.assertAlmostEqual( |
- list_of_scalar_values.StandardDeviation([1]), 0) |
- self.assertAlmostEqual( |
- list_of_scalar_values.StandardDeviation([600, 470, 170, 430, 300]), |
- 164.71186, places=4) |
- |
- def testPooledVariance(self): |
- self.assertAlmostEqual( |
- list_of_scalar_values.PooledStandardDeviation([[], [], []]), 0) |
- self.assertAlmostEqual( |
- list_of_scalar_values.PooledStandardDeviation([[1], [], [3], []]), 0) |
- self.assertAlmostEqual( |
- list_of_scalar_values.PooledStandardDeviation([[1], [2], [3], [4]]), 0) |
- self.assertAlmostEqual(list_of_scalar_values.PooledStandardDeviation( |
- [[600, 470, 170, 430, 300], # variance = 27130, std = 164.7 |
- [4000, 4020, 4230], # variance = 16233, std = 127.41 |
- [260, 700, 800, 900, 0, 120, 150]]), # variance = 136348, std = 369.2 |
- 282.7060, # SQRT((27130 4 + 16233*2 + 136348*6)/12) |
- places=4) |
- self.assertAlmostEqual(list_of_scalar_values.PooledStandardDeviation( |
- [[600, 470, 170, 430, 300], |
- [4000, 4020, 4230], |
- [260, 700, 800, 900, 0, 120, 150]], |
- list_of_variances=[100000, 200000, 300000]), |
- 465.47466, # SQRT((100000*4 + 200000* 2 + 300000*6)/12) |
- places=4) |
- |
- |
-class TestBase(unittest.TestCase): |
- def setUp(self): |
- story_set = story.StorySet(base_dir=os.path.dirname(__file__)) |
- story_set.AddStory( |
- page_module.Page('http://www.bar.com/', story_set, story_set.base_dir)) |
- story_set.AddStory( |
- page_module.Page('http://www.baz.com/', story_set, story_set.base_dir)) |
- story_set.AddStory( |
- page_module.Page('http://www.foo.com/', story_set, story_set.base_dir)) |
- self.story_set = story_set |
- |
- @property |
- def pages(self): |
- return self.story_set.stories |
- |
-class ValueTest(TestBase): |
- def testRepr(self): |
- page = self.pages[0] |
- v = list_of_scalar_values.ListOfScalarValues( |
- page, 'x', 'unit', [10, 9, 9, 7], important=True, description='desc', |
- tir_label='my_ir', std=42, same_page_merge_policy=value.CONCATENATE, |
- improvement_direction=improvement_direction.DOWN) |
- |
- expected = ('ListOfScalarValues(http://www.bar.com/, x, unit, ' |
- '[10, 9, 9, 7], important=True, description=desc, ' |
- 'tir_label=my_ir, std=42, ' |
- 'same_page_merge_policy=CONCATENATE, ' |
- 'improvement_direction=down)') |
- |
- self.assertEquals(expected, str(v)) |
- |
- def testListSamePageMergingWithSamePageConcatenatePolicy(self): |
- page0 = self.pages[0] |
- v0 = list_of_scalar_values.ListOfScalarValues( |
- page0, 'x', 'unit', |
- [10, 9, 9, 7], same_page_merge_policy=value.CONCATENATE, |
- improvement_direction=improvement_direction.DOWN) |
- v1 = list_of_scalar_values.ListOfScalarValues( |
- page0, 'x', 'unit', |
- [300, 302, 303, 304], same_page_merge_policy=value.CONCATENATE, |
- improvement_direction=improvement_direction.DOWN) |
- self.assertTrue(v1.IsMergableWith(v0)) |
- |
- vM = (list_of_scalar_values.ListOfScalarValues. |
- MergeLikeValuesFromSamePage([v0, v1])) |
- self.assertEquals(page0, vM.page) |
- self.assertEquals('x', vM.name) |
- self.assertEquals('unit', vM.units) |
- self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy) |
- self.assertEquals(True, vM.important) |
- self.assertEquals([10, 9, 9, 7, 300, 302, 303, 304], vM.values) |
- # SQRT((19/12 * 3 + 35/12 * 3)/6) = 1.5 |
- self.assertAlmostEqual(1.5, vM.std) |
- self.assertEquals(improvement_direction.DOWN, vM.improvement_direction) |
- |
- def testListSamePageMergingWithPickFirstPolicy(self): |
- page0 = self.pages[0] |
- v0 = list_of_scalar_values.ListOfScalarValues( |
- page0, 'x', 'unit', |
- [1, 2], same_page_merge_policy=value.PICK_FIRST, |
- improvement_direction=improvement_direction.UP) |
- v1 = list_of_scalar_values.ListOfScalarValues( |
- page0, 'x', 'unit', |
- [3, 4], same_page_merge_policy=value.PICK_FIRST, |
- improvement_direction=improvement_direction.UP) |
- self.assertTrue(v1.IsMergableWith(v0)) |
- |
- vM = (list_of_scalar_values.ListOfScalarValues. |
- MergeLikeValuesFromSamePage([v0, v1])) |
- self.assertEquals(page0, vM.page) |
- self.assertEquals('x', vM.name) |
- self.assertEquals('unit', vM.units) |
- self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy) |
- self.assertEquals(True, vM.important) |
- self.assertEquals([1, 2], vM.values) |
- self.assertEquals(improvement_direction.UP, vM.improvement_direction) |
- |
- def testListDifferentPageMerging(self): |
- page0 = self.pages[0] |
- page1 = self.pages[1] |
- v0 = list_of_scalar_values.ListOfScalarValues( |
- page0, 'x', 'unit', |
- [1, 2], same_page_merge_policy=value.CONCATENATE, |
- improvement_direction=improvement_direction.DOWN) |
- v1 = list_of_scalar_values.ListOfScalarValues( |
- page1, 'x', 'unit', |
- [3, 4], same_page_merge_policy=value.CONCATENATE, |
- improvement_direction=improvement_direction.DOWN) |
- self.assertTrue(v1.IsMergableWith(v0)) |
- |
- vM = (list_of_scalar_values.ListOfScalarValues. |
- MergeLikeValuesFromDifferentPages([v0, v1])) |
- self.assertEquals(None, vM.page) |
- self.assertEquals('x', vM.name) |
- self.assertEquals('unit', vM.units) |
- self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy) |
- self.assertEquals(True, vM.important) |
- self.assertEquals([1, 2, 3, 4], vM.values) |
- self.assertEquals(improvement_direction.DOWN, vM.improvement_direction) |
- |
- def testListWithNoneValueMerging(self): |
- page0 = self.pages[0] |
- v0 = list_of_scalar_values.ListOfScalarValues( |
- page0, 'x', 'unit', |
- [1, 2], same_page_merge_policy=value.CONCATENATE, |
- improvement_direction=improvement_direction.UP) |
- v1 = list_of_scalar_values.ListOfScalarValues( |
- page0, 'x', 'unit', |
- None, same_page_merge_policy=value.CONCATENATE, none_value_reason='n', |
- improvement_direction=improvement_direction.UP) |
- self.assertTrue(v1.IsMergableWith(v0)) |
- |
- vM = (list_of_scalar_values.ListOfScalarValues. |
- MergeLikeValuesFromSamePage([v0, v1])) |
- self.assertEquals(None, vM.values) |
- self.assertEquals(none_values.MERGE_FAILURE_REASON, |
- vM.none_value_reason) |
- self.assertEquals(improvement_direction.UP, vM.improvement_direction) |
- |
- def testListWithNoneValueMustHaveNoneReason(self): |
- page0 = self.pages[0] |
- self.assertRaises(none_values.NoneValueMissingReason, |
- lambda: list_of_scalar_values.ListOfScalarValues( |
- page0, 'x', 'unit', None, |
- improvement_direction=improvement_direction.DOWN)) |
- |
- def testListWithNoneReasonMustHaveNoneValue(self): |
- page0 = self.pages[0] |
- self.assertRaises(none_values.ValueMustHaveNoneValue, |
- lambda: list_of_scalar_values.ListOfScalarValues( |
- page0, 'x', 'unit', [1, 2], |
- none_value_reason='n', |
- improvement_direction=improvement_direction.UP)) |
- |
- def testAsDict(self): |
- v = list_of_scalar_values.ListOfScalarValues( |
- None, 'x', 'unit', [1, 2], |
- same_page_merge_policy=value.PICK_FIRST, important=False, |
- improvement_direction=improvement_direction.DOWN) |
- d = v.AsDictWithoutBaseClassEntries() |
- |
- self.assertEquals(d['values'], [1, 2]) |
- self.assertAlmostEqual(d['std'], 0.7071, places=4) |
- |
- def testMergedValueAsDict(self): |
- page0 = self.pages[0] |
- v0 = list_of_scalar_values.ListOfScalarValues( |
- page0, 'x', 'unit', |
- [10, 9, 9, 7], same_page_merge_policy=value.CONCATENATE, |
- improvement_direction=improvement_direction.DOWN) |
- v1 = list_of_scalar_values.ListOfScalarValues( |
- page0, 'x', 'unit', |
- [300, 302, 303, 304], same_page_merge_policy=value.CONCATENATE, |
- improvement_direction=improvement_direction.DOWN) |
- self.assertTrue(v1.IsMergableWith(v0)) |
- |
- vM = (list_of_scalar_values.ListOfScalarValues. |
- MergeLikeValuesFromSamePage([v0, v1])) |
- d = vM.AsDict() |
- self.assertEquals(d['values'], [10, 9, 9, 7, 300, 302, 303, 304]) |
- # SQRT((19/12 * 3 + 35/12 * 3)/6) |
- self.assertAlmostEqual(d['std'], 1.5) |
- |
- |
- def testNoneValueAsDict(self): |
- v = list_of_scalar_values.ListOfScalarValues( |
- None, 'x', 'unit', None, same_page_merge_policy=value.PICK_FIRST, |
- important=False, none_value_reason='n', |
- improvement_direction=improvement_direction.UP) |
- d = v.AsDictWithoutBaseClassEntries() |
- |
- self.assertEquals(d, { |
- 'values': None, |
- 'none_value_reason': 'n', |
- 'std': None |
- }) |
- |
- def testFromDictInts(self): |
- d = { |
- 'type': 'list_of_scalar_values', |
- 'name': 'x', |
- 'units': 'unit', |
- 'values': [1, 2], |
- 'std': 0.7071, |
- 'improvement_direction': improvement_direction.DOWN |
- } |
- v = value.Value.FromDict(d, {}) |
- |
- self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues)) |
- self.assertEquals(v.values, [1, 2]) |
- self.assertEquals(v.std, 0.7071) |
- self.assertEquals(improvement_direction.DOWN, v.improvement_direction) |
- |
- def testFromDictFloats(self): |
- d = { |
- 'type': 'list_of_scalar_values', |
- 'name': 'x', |
- 'units': 'unit', |
- 'values': [1.3, 2.7, 4.5, 2.1, 3.4], |
- 'std': 0.901, |
- 'improvement_direction': improvement_direction.UP |
- } |
- v = value.Value.FromDict(d, {}) |
- |
- self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues)) |
- self.assertEquals(v.values, [1.3, 2.7, 4.5, 2.1, 3.4]) |
- self.assertEquals(v.std, 0.901) |
- |
- def testFromDictWithoutImprovementDirection(self): |
- d = { |
- 'type': 'list_of_scalar_values', |
- 'name': 'x', |
- 'units': 'unit', |
- 'values': [1, 2], |
- 'std': 0.7071, |
- } |
- v = value.Value.FromDict(d, {}) |
- |
- self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues)) |
- self.assertIsNone(v.improvement_direction) |
- |
- def testFromDictNoneValue(self): |
- d = { |
- 'type': 'list_of_scalar_values', |
- 'name': 'x', |
- 'units': 'unit', |
- 'values': None, |
- 'std': None, |
- 'none_value_reason': 'n', |
- 'improvement_direction': improvement_direction.DOWN |
- } |
- v = value.Value.FromDict(d, {}) |
- |
- self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues)) |
- self.assertEquals(v.values, None) |
- self.assertEquals(v.none_value_reason, 'n') |