1from PyObjCTools.TestSupport import *
2from Quartz import *
3
4class TestCVBase (TestCase):
5    def testStructs(self):
6        v = CVSMPTETime()
7        self.assertIsInstance(v.subframes, (int, long))
8        self.assertIsInstance(v.subframeDivisor, (int, long))
9        self.assertIsInstance(v.counter, (int, long))
10        self.assertIsInstance(v.type, (int, long))
11        self.assertIsInstance(v.flags, (int, long))
12        self.assertIsInstance(v.hours, (int, long))
13        self.assertIsInstance(v.minutes, (int, long))
14        self.assertIsInstance(v.seconds, (int, long))
15        self.assertIsInstance(v.frames, (int, long))
16
17        v = CVTime()
18        self.assertIsInstance(v.timeValue, (int, long))
19        self.assertIsInstance(v.timeScale, (int, long))
20        self.assertIsInstance(v.flags, (int, long))
21
22        v = CVTimeStamp()
23        self.assertIsInstance(v.version, (int, long))
24        self.assertIsInstance(v.videoTimeScale, (int, long))
25        self.assertIsInstance(v.videoTime, (int, long))
26        self.assertIsInstance(v.hostTime, (int, long))
27        self.assertIsInstance(v.rateScalar, float)
28        self.assertIsInstance(v.videoRefreshPeriod, (int, long))
29        self.assertIsInstance(v.smpteTime, CVSMPTETime)
30        self.assertIsInstance(v.flags, (int, long))
31        self.assertIsInstance(v.reserved, (int, long))
32
33
34    def testConstants(self):
35        self.assertEqual(kCVSMPTETimeType24, 0)
36        self.assertEqual(kCVSMPTETimeType25, 1)
37        self.assertEqual(kCVSMPTETimeType30Drop, 2)
38        self.assertEqual(kCVSMPTETimeType30, 3)
39        self.assertEqual(kCVSMPTETimeType2997, 4)
40        self.assertEqual(kCVSMPTETimeType2997Drop, 5)
41        self.assertEqual(kCVSMPTETimeType60, 6)
42        self.assertEqual(kCVSMPTETimeType5994, 7)
43
44        self.assertEqual(kCVSMPTETimeValid, 1)
45        self.assertEqual(kCVSMPTETimeRunning, 2)
46
47        self.assertEqual(kCVTimeIsIndefinite, 1)
48
49        self.assertEqual(kCVTimeStampVideoTimeValid, 1)
50        self.assertEqual(kCVTimeStampHostTimeValid, 2)
51        self.assertEqual(kCVTimeStampSMPTETimeValid, 4)
52        self.assertEqual(kCVTimeStampVideoRefreshPeriodValid, 8)
53        self.assertEqual(kCVTimeStampRateScalarValid, 16)
54        self.assertEqual(kCVTimeStampTopField, 1<<16)
55        self.assertEqual(kCVTimeStampBottomField, 1<<17)
56
57        self.assertEqual(kCVTimeStampVideoHostTimeValid, (kCVTimeStampVideoTimeValid | kCVTimeStampHostTimeValid))
58        self.assertEqual(kCVTimeStampIsInterlaced, (kCVTimeStampTopField | kCVTimeStampBottomField))
59
60        self.assertIsInstance(kCVZeroTime, CVTime)
61        self.assertIsInstance(kCVIndefiniteTime, CVTime)
62
63
64
65if __name__ == "__main__":
66    main()
67