OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import unittest | 5 import unittest |
6 | 6 |
7 import telemetry.web_perf.metrics.timeline_based_metric as tbm_module | 7 import telemetry.web_perf.metrics.timeline_based_metric as tbm_module |
8 | 8 |
9 | 9 |
| 10 class FakeEvent(object): |
| 11 def __init__(self, start, end): |
| 12 self.start = start |
| 13 self.end = end |
| 14 |
| 15 |
| 16 class FakeRecord(object): |
| 17 def __init__(self, start, end): |
| 18 self.start = start |
| 19 self.end = end |
| 20 |
| 21 |
10 class TimelineBasedMetricTest(unittest.TestCase): | 22 class TimelineBasedMetricTest(unittest.TestCase): |
11 | 23 |
12 # pylint: disable=W0212 | 24 # pylint: disable=W0212 |
13 def testTimeRangesHasOverlap(self): | 25 def testTimeRangesHasOverlap(self): |
14 # Test cases with overlap on one side | 26 # Test cases with overlap on one side |
15 self.assertTrue(tbm_module._TimeRangesHasOverlap([(10, 20), (5, 15)])) | 27 self.assertTrue(tbm_module._TimeRangesHasOverlap([(10, 20), (5, 15)])) |
16 self.assertTrue(tbm_module._TimeRangesHasOverlap([(5, 15), (10, 20)])) | 28 self.assertTrue(tbm_module._TimeRangesHasOverlap([(5, 15), (10, 20)])) |
17 self.assertTrue(tbm_module._TimeRangesHasOverlap( | 29 self.assertTrue(tbm_module._TimeRangesHasOverlap( |
18 [(5, 15), (25, 30), (10, 20)])) | 30 [(5, 15), (25, 30), (10, 20)])) |
19 | 31 |
20 # Test cases with one range fall in the middle of other | 32 # Test cases with one range fall in the middle of other |
21 self.assertTrue(tbm_module._TimeRangesHasOverlap([(10, 20), (15, 18)])) | 33 self.assertTrue(tbm_module._TimeRangesHasOverlap([(10, 20), (15, 18)])) |
22 self.assertTrue(tbm_module._TimeRangesHasOverlap([(15, 18), (10, 20)])) | 34 self.assertTrue(tbm_module._TimeRangesHasOverlap([(15, 18), (10, 20)])) |
23 self.assertTrue(tbm_module._TimeRangesHasOverlap( | 35 self.assertTrue(tbm_module._TimeRangesHasOverlap( |
24 [(15, 18), (40, 50), (10, 20)])) | 36 [(15, 18), (40, 50), (10, 20)])) |
25 | 37 |
26 self.assertFalse(tbm_module._TimeRangesHasOverlap([(15, 18), (20, 25)])) | 38 self.assertFalse(tbm_module._TimeRangesHasOverlap([(15, 18), (20, 25)])) |
27 self.assertFalse(tbm_module._TimeRangesHasOverlap( | 39 self.assertFalse(tbm_module._TimeRangesHasOverlap( |
28 [(1, 2), (2, 3), (0, 1)])) | 40 [(1, 2), (2, 3), (0, 1)])) |
| 41 |
| 42 def testIsEventInInteractions(self): |
| 43 self.assertFalse( |
| 44 tbm_module.IsEventInInteractions( |
| 45 FakeEvent(0, 100), |
| 46 [FakeRecord(5, 105), FakeRecord(50, 200), FakeRecord(300, 400)])) |
| 47 self.assertFalse( |
| 48 tbm_module.IsEventInInteractions( |
| 49 FakeEvent(50, 100), |
| 50 [FakeRecord(105, 205), FakeRecord(0, 45), FakeRecord(0, 90)])) |
| 51 self.assertTrue( |
| 52 tbm_module.IsEventInInteractions( |
| 53 FakeEvent(50, 100), |
| 54 [FakeRecord(5, 105), FakeRecord(0, 45), FakeRecord(0, 90)])) |
| 55 self.assertTrue( |
| 56 tbm_module.IsEventInInteractions( |
| 57 FakeEvent(50, 100), |
| 58 [FakeRecord(5, 45), FakeRecord(0, 45), FakeRecord(0, 100)])) |
OLD | NEW |