def translate_term(*, term: Term) -> TermAvro: avro_term = TermAvro() if term.get_start_time() is not None: avro_term.start_time = ActorClock.to_milliseconds(when=term.get_start_time()) else: term.start_time = 0 if term.get_end_time() is not None: avro_term.end_time = ActorClock.to_milliseconds(when=term.get_end_time()) else: term.end_time = 0 if term.get_new_start_time() is not None: avro_term.new_start_time = ActorClock.to_milliseconds(when=term.get_new_start_time()) else: avro_term.new_start_time = 0 return avro_term
def check(self, *, term: Term, start: int = None, new_start: int = None, end: int = None): if start is not None and new_start is not None and end is not None: self.assertIsNotNone(term.start_time) self.assertIsNotNone(term.new_start_time) self.assertIsNotNone(term.end_time) self.assertIsNotNone(term.get_start_time()) self.assertIsNotNone(term.get_new_start_time()) self.assertIsNotNone(term.get_end_time()) self.assertEqual(start, ActorClock.to_milliseconds(when=term.get_start_time())) self.assertEqual(new_start, ActorClock.to_milliseconds(when=term.get_new_start_time())) self.assertEqual(end, ActorClock.to_milliseconds(when=term.get_end_time())) else: self.assertIsNone(term.start_time) self.assertIsNone(term.new_start_time) self.assertIsNone(term.end_time) self.assertIsNone(term.get_start_time()) self.assertIsNone(term.get_new_start_time()) self.assertIsNone(term.get_end_time())
def test_ends(self): start = 1000 end = 1499 length = 500 t = Term(start=ActorClock.from_milliseconds(milli_seconds=start), end=ActorClock.from_milliseconds(milli_seconds=end)) self.check(term=t, start=start, new_start=start, end=end) self.assertEqual(length, t.get_length()) # term cannot end before it started self.assertFalse(t.ends_before(date=t.get_start_time())) self.assertFalse(t.expired(date=t.get_start_time())) self.assertTrue(t.ends_after(date=t.get_start_time())) self.assertFalse(t.ends_before(date=t.get_end_time())) self.assertFalse(t.ends_after(date=t.get_end_time())) self.assertFalse(t.expired(date=t.get_end_time())) self.assertFalse(t.ends_before(date=ActorClock.from_milliseconds(milli_seconds=start - 100))) self.assertTrue(t.ends_after(date=ActorClock.from_milliseconds(milli_seconds=start - 100))) self.assertFalse(t.expired(date=ActorClock.from_milliseconds(milli_seconds=start - 100))) self.assertTrue(t.ends_before(date=ActorClock.from_milliseconds(milli_seconds=end + 1))) self.assertTrue(t.expired(date=ActorClock.from_milliseconds(milli_seconds=end + 1))) self.assertFalse(t.ends_after(date=ActorClock.from_milliseconds(milli_seconds=end + 1)))