Commit aa7c6661 authored by nednguyen's avatar nednguyen Committed by Commit bot

[Telemetry] Add a helper method for checking whether an event

fall in the ranges of interaction records

Review URL: https://codereview.chromium.org/1357423008

Cr-Commit-Position: refs/heads/master@{#351086}
parent eb7ea71c
......@@ -26,6 +26,23 @@ def _TimeRangesHasOverlap(iterable_time_ranges):
return False
def IsEventInInteractions(event, interaction_records):
""" Return True if event is in any of the interaction records' time range.
Args:
event: an instance of telemetry.timeline.event.TimelineEvent.
interaction_records: a list of interaction records, whereas each record is
an instance of
telemetry.web_perf.timeline_interaction_record.TimelineInteractionRecord.
Returns:
True if |event|'s start & end time is in any of the |interaction_records|'s
time range.
"""
return any(ir.start <= event.start and ir.end >= event.end for ir
in interaction_records)
class TimelineBasedMetric(object):
def __init__(self):
......
......@@ -7,6 +7,18 @@ import unittest
import telemetry.web_perf.metrics.timeline_based_metric as tbm_module
class FakeEvent(object):
def __init__(self, start, end):
self.start = start
self.end = end
class FakeRecord(object):
def __init__(self, start, end):
self.start = start
self.end = end
class TimelineBasedMetricTest(unittest.TestCase):
# pylint: disable=W0212
......@@ -26,3 +38,21 @@ class TimelineBasedMetricTest(unittest.TestCase):
self.assertFalse(tbm_module._TimeRangesHasOverlap([(15, 18), (20, 25)]))
self.assertFalse(tbm_module._TimeRangesHasOverlap(
[(1, 2), (2, 3), (0, 1)]))
def testIsEventInInteractions(self):
self.assertFalse(
tbm_module.IsEventInInteractions(
FakeEvent(0, 100),
[FakeRecord(5, 105), FakeRecord(50, 200), FakeRecord(300, 400)]))
self.assertFalse(
tbm_module.IsEventInInteractions(
FakeEvent(50, 100),
[FakeRecord(105, 205), FakeRecord(0, 45), FakeRecord(0, 90)]))
self.assertTrue(
tbm_module.IsEventInInteractions(
FakeEvent(50, 100),
[FakeRecord(5, 105), FakeRecord(0, 45), FakeRecord(0, 90)]))
self.assertTrue(
tbm_module.IsEventInInteractions(
FakeEvent(50, 100),
[FakeRecord(5, 45), FakeRecord(0, 45), FakeRecord(0, 100)]))
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment