def test_frame_to_tc(self): def assertFrameToTC(tc_, hrs, mins, secs, frs): self.assertEqual(hrs, tc_.hrs) self.assertEqual(mins, tc_.mins) self.assertEqual(secs, tc_.secs) self.assertEqual(frs, tc_.frs) tc = Timecode('29.97', '00:00:00:01') assertFrameToTC(tc, 0, 0, 0, 1) self.assertEqual('00:00:00:01', tc.__str__()) test_code = '03:36:09:23' framerates = ['23.98', '24', '25', '29.97', '30', '59.94', '60'] for fr in framerates: tc = Timecode(fr, test_code) assertFrameToTC(tc, 3, 36, 9, 23) tc = Timecode('ms', '03:36:09:230') assertFrameToTC(tc, 3, 36, 9, 230) tc = Timecode('24', frames=12000) assertFrameToTC(tc, 0, 8, 19, 23) self.assertEqual('00:08:19:23', tc.__str__())
def test_framerate_can_be_changed(self): """testing if the timecode value will be automaticall updated when the framerate attribute is changed """ tc1 = Timecode('25', frames=100) self.assertEqual('00:00:03:24', tc1.__str__()) self.assertEqual(100, tc1.frames) tc1.framerate = '12' self.assertEqual('00:00:08:03', tc1.__str__()) self.assertEqual(100, tc1.frames)
def test_tc_to_frame_test_in_2997(self): """testing if timecode to frame conversion is ok in 2997 """ tc = Timecode('29.97', '00:00:00;00') self.assertEqual(tc.frames, 1) tc = Timecode('29.97', '00:00:00;21') self.assertEqual(tc.frames, 22) tc = Timecode('29.97', '00:00:00;29') self.assertEqual(tc.frames, 30) tc = Timecode('29.97', '00:00:00;60') self.assertEqual(tc.frames, 61) tc = Timecode('29.97', '00:00:01;00') self.assertEqual(tc.frames, 31) tc = Timecode('29.97', '00:00:10;00') self.assertEqual(tc.frames, 301) # test with non existing timecodes tc = Timecode('29.97', '00:01:00;00') self.assertEqual(1799, tc.frames) self.assertEqual('00:00:59;28', tc.__str__()) # test the limit tc = Timecode('29.97', '23:59:59;29') self.assertEqual(2589408, tc.frames)
def test_tc_to_frame_test_in_2997(self): """testing if timecode to frame conversion is ok in 2997 """ tc = Timecode('29.97', '00:00:00:00') self.assertEqual(tc.frames, 1) tc = Timecode('29.97', '00:00:00:21') self.assertEqual(tc.frames, 22) tc = Timecode('29.97', '00:00:00:29') self.assertEqual(tc.frames, 30) tc = Timecode('29.97', '00:00:00:60') self.assertEqual(tc.frames, 61) tc = Timecode('29.97', '00:00:01:00') self.assertEqual(tc.frames, 31) tc = Timecode('29.97', '00:00:10:00') self.assertEqual(tc.frames, 301) # test with non existing timecodes tc = Timecode('29.97', '00:01:00:00') self.assertEqual(1799, tc.frames) self.assertEqual('00:00:59:28', tc.__str__()) # test the limit tc = Timecode('29.97', '23:59:59:29') self.assertEqual(2589408, tc.frames)
def test_timecode_init(self): """testing several timecode initialization """ tc = Timecode('29.97') self.assertEqual('00:00:00;00', tc.__str__()) self.assertEqual(1, tc.frames) tc = Timecode('29.97', '00:00:00;01') self.assertEqual(2, tc.frames) tc = Timecode('29.97', '03:36:09;23') self.assertEqual(388704, tc.frames) tc = Timecode('29.97', '03:36:09;23') self.assertEqual(388704, tc.frames) tc = Timecode('30', '03:36:09:23') self.assertEqual(389094, tc.frames) tc = Timecode('25', '03:36:09:23') self.assertEqual(324249, tc.frames) tc = Timecode('59.94', '03:36:09;23') self.assertEqual(777384, tc.frames) tc = Timecode('60', '03:36:09:23') self.assertEqual(778164, tc.frames) tc = Timecode('59.94', '03:36:09;23') self.assertEqual(777384, tc.frames) tc = Timecode('23.98', '03:36:09:23') self.assertEqual(311280, tc.frames) tc = Timecode('24', '03:36:09:23') self.assertEqual(311280, tc.frames) tc = Timecode('ms', '03:36:09.230') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(230, tc.frs) tc = Timecode('24', frames=12000) self.assertEqual('00:08:19:23', tc.__str__()) tc = Timecode('29.97', frames=2589408) self.assertEqual('23:59:59;29', tc.__str__()) tc = Timecode('29.97', frames=2589409) self.assertEqual('00:00:00;00', tc.__str__()) tc = Timecode('59.94', frames=5178816) self.assertEqual('23:59:59;59', tc.__str__()) tc = Timecode('59.94', frames=5178817) self.assertEqual('00:00:00;00', tc.__str__())
def test_timecode_init(self): """testing several timecode initialization """ tc = Timecode('29.97') self.assertEqual('00:00:00:00', tc.__str__()) self.assertEqual(1, tc.frames) tc = Timecode('29.97', '00:00:00:01') self.assertEqual(2, tc.frames) tc = Timecode('29.97', '03:36:09:23') self.assertEqual(388704, tc.frames) tc = Timecode('29.97', '03:36:09:23') self.assertEqual(388704, tc.frames) tc = Timecode('30', '03:36:09:23') self.assertEqual(389094, tc.frames) tc = Timecode('25', '03:36:09:23') self.assertEqual(324249, tc.frames) tc = Timecode('59.94', '03:36:09:23') self.assertEqual(777384, tc.frames) tc = Timecode('60', '03:36:09:23') self.assertEqual(778164, tc.frames) tc = Timecode('59.94', '03:36:09:23') self.assertEqual(777384, tc.frames) tc = Timecode('23.98', '03:36:09:23') self.assertEqual(311280, tc.frames) tc = Timecode('24', '03:36:09:23') self.assertEqual(311280, tc.frames) tc = Timecode('ms', '03:36:09:230') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(230, tc.frs) tc = Timecode('24', frames=12000) self.assertEqual('00:08:19:23', tc.__str__()) tc = Timecode('29.97', frames=2589408) self.assertEqual('23:59:59:29', tc.__str__()) tc = Timecode('29.97', frames=2589409) self.assertEqual('00:00:00:00', tc.__str__()) tc = Timecode('59.94', frames=5178816) self.assertEqual('23:59:59:59', tc.__str__()) tc = Timecode('59.94', frames=5178817) self.assertEqual('00:00:00:00', tc.__str__())
def test_24_hour_limit(self): """testing if the timecode will loop back to 00:00:00:00 after 24 hours in 29.97 fps """ tc0 = Timecode('59.94', '23:59:59:29') self.assertEqual(5178786, tc0.frames) tc0 = Timecode('29.97', '23:59:59:29') self.assertEqual(2589408, tc0.frames) tc1 = Timecode('29.97', frames=2589408) self.assertEqual('23:59:59:29', tc1.__str__()) tc2 = Timecode('29.97', '23:59:59:29') tc3 = tc2 + 1 self.assertEqual('00:00:00:00', tc3.__str__()) tc2 = Timecode('29.97', '23:59:59:29') tc3 = tc2 + 21 self.assertEqual('00:00:00:20', tc3.__str__()) tc = Timecode('29.97', '00:00:00:21') tc2 = Timecode('29.97', '23:59:59:29') tc3 = (tc + tc2) self.assertEqual('00:00:00:21', tc3.__str__()) tc = Timecode('29.97', '04:20:13:21') tca = Timecode('29.97', frames=467944) self.assertEqual(467944, tca.frames) self.assertEqual(467944, tc.frames) self.assertEqual('04:20:13:21', tca.__str__()) self.assertEqual('04:20:13:21', tc.__str__()) tc2 = Timecode('29.97', '23:59:59:29') self.assertEqual(2589408, tc2.frames) self.assertEqual('23:59:59:29', tc2.__str__()) tc2a = Timecode('29.97', frames=2589408) self.assertEqual(2589408, tc2a.frames) self.assertEqual('23:59:59:29', tc2a.__str__()) tc3 = (tc + tc2) self.assertEqual('04:20:13:21', tc3.__str__()) tc = Timecode('59.94', '04:20:13:21') self.assertEqual('04:20:13:21', tc.__str__()) tca = Timecode('59.94', frames=935866) self.assertEqual('04:20:13:21', tc.__str__()) tc2 = Timecode('59.94', '23:59:59:59') tc3 = (tc + tc2) self.assertEqual('04:20:13:21', tc3.__str__())
def test_drop_frame(self): tc = Timecode('29.97', '13:36:59:29') timecode = tc.next() self.assertEqual("13:37:00:02", timecode.__str__()) tc = Timecode('59.94', '13:36:59:59') self.assertEqual("13:36:59:59", tc.__str__()) timecode = tc.next() self.assertEqual("13:37:00:04", timecode.__str__()) tc = Timecode('59.94', '13:39:59:59') timecode = tc.next() self.assertEqual("13:40:00:00", timecode.__str__()) tc = Timecode('29.97', '13:39:59:29') timecode = tc.next() self.assertEqual("13:40:00:00", timecode.__str__())
def test_frame_to_tc(self): tc = Timecode('29.97', '00:00:00;01') self.assertEqual(0, tc.hrs) self.assertEqual(0, tc.mins) self.assertEqual(0, tc.secs) self.assertEqual(1, tc.frs) self.assertEqual('00:00:00;01', tc.__str__()) tc = Timecode('29.97', '03:36:09;23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('29.97', '03:36:09;23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('30', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('25', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('59.94', '03:36:09;23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('60', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('59.94', '03:36:09;23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('23.98', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('24', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('ms', '03:36:09.230') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(230, tc.frs) tc = Timecode('24', frames=12000) self.assertEqual('00:08:19:23', tc.__str__()) self.assertEqual(0, tc.hrs) self.assertEqual(8, tc.mins) self.assertEqual(19, tc.secs) self.assertEqual(23, tc.frs)
def test_frame_to_tc(self): tc = Timecode('29.97', '00:00:00:01') self.assertEqual(0, tc.hrs) self.assertEqual(0, tc.mins) self.assertEqual(0, tc.secs) self.assertEqual(1, tc.frs) self.assertEqual('00:00:00:01', tc.__str__()) tc = Timecode('29.97', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('29.97', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('30', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('25', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('59.94', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('60', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('59.94', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('23.98', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('24', '03:36:09:23') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(23, tc.frs) tc = Timecode('ms', '03:36:09:230') self.assertEqual(3, tc.hrs) self.assertEqual(36, tc.mins) self.assertEqual(9, tc.secs) self.assertEqual(230, tc.frs) tc = Timecode('24', frames=12000) self.assertEqual('00:08:19:23', tc.__str__()) self.assertEqual(0, tc.hrs) self.assertEqual(8, tc.mins) self.assertEqual(19, tc.secs) self.assertEqual(23, tc.frs)