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
3# found in the LICENSE file.
4
5import unittest
6
7import telemetry.web_perf.metrics.timeline_based_metric as tbm_module
8
9
10class TimelineBasedMetricTest(unittest.TestCase):
11
12  # pylint: disable=W0212
13  def testTimeRangesHasOverlap(self):
14    # Test cases with overlap on one side
15    self.assertTrue(tbm_module._TimeRangesHasOverlap([(10, 20), (5, 15)]))
16    self.assertTrue(tbm_module._TimeRangesHasOverlap([(5, 15), (10, 20)]))
17    self.assertTrue(tbm_module._TimeRangesHasOverlap(
18        [(5, 15), (25, 30), (10, 20)]))
19
20    # Test cases with one range fall in the middle of other
21    self.assertTrue(tbm_module._TimeRangesHasOverlap([(10, 20), (15, 18)]))
22    self.assertTrue(tbm_module._TimeRangesHasOverlap([(15, 18), (10, 20)]))
23    self.assertTrue(tbm_module._TimeRangesHasOverlap(
24        [(15, 18), (40, 50), (10, 20)]))
25
26    self.assertFalse(tbm_module._TimeRangesHasOverlap([(15, 18), (20, 25)]))
27    self.assertFalse(tbm_module._TimeRangesHasOverlap(
28        [(1, 2), (2, 3), (0, 1)]))
29