def test01_instant(self): """test01_instant() """ # sequ: Sequencer = Sequencer(0.1) # sequencer with an interval of .1 sec # sequencer with an interval of 15.0 sec sequ: Sequencer = Sequencer(5.0) # init for 5 sec delay self.assertAlmostEqual(5.0, sequ.delayseconds) self.assertEqual(20, len(sequ._to_do_sched)) self.assertFalse(sequ.do_it_now()) self.assertEqual(0, sequ.skipped) initiallastsched = sequ._to_do_sched[-1] cnt: int = 0 starttime = monotonic() while not sequ.do_it_now(): Sleep(0.25) self.assertEqual(0, sequ.skipped) cnt += 1 endtime = monotonic() toloop = endtime - starttime self.assertAlmostEqual(10.0, round(toloop, 0)) currentlastsched = sequ._to_do_sched[-1] delay1 = currentlastsched - initiallastsched self.assertAlmostEqual(5.0, delay1) self.assertTrue(38 < cnt < 41) sched: List[float] = list(sequ._to_do_sched) ll: List[float] = [] for i in range(1, len(sched)): ll.append(sched[i] - sched[i - 1]) self.assertEqual(5.0, mean(ll)) sequ = Sequencer(1) # init for 1 sec delay Sleep(20.5) self.assertEqual(20, len(sequ._to_do_sched)) self.assertTrue(sequ.do_it_now()) self.assertEqual(20, len(sequ._to_do_sched)) self.assertEqual(11, sequ.skipped) sequ = Sequencer(5.0) # init for 5 sec delay waittime: float = sequ.get_nxt_wait() Sleep(waittime - 0.5) waittime = sequ.get_nxt_wait() self.assertAlmostEqual(0.5, waittime, places=1) a = 0