1from PyObjCTools.TestSupport import * 2import sys 3from CoreFoundation import * 4 5 6class TestByteOrder (TestCase): 7 8 def testConstants(self): 9 self.assertEqual(CFByteOrderUnknown , 0) 10 self.assertEqual(CFByteOrderLittleEndian , 1) 11 self.assertEqual(CFByteOrderBigEndian , 2) 12 def testCurrent(self): 13 if sys.byteorder == 'little': 14 self.assertTrue(CFByteOrderGetCurrent(), CFByteOrderLittleEndian) 15 else: 16 self.assertTrue(CFByteOrderGetCurrent(), CFByteOrderBigEndian) 17 18 def testSwap(self): 19 v = CFSwapInt16(0x1) 20 self.assertEqual(v , 1 << 8) 21 v = CFSwapInt32(0x1) 22 self.assertEqual(v , 1 << 24) 23 v = CFSwapInt64(0x1) 24 self.assertEqual(v , 1 << 56) 25 if sys.byteorder == 'big': 26 v = CFSwapInt16BigToHost(0x1) 27 self.assertEqual(v, 1) 28 v = CFSwapInt32BigToHost(0x1) 29 self.assertEqual(v, 1) 30 v = CFSwapInt64BigToHost(0x1) 31 self.assertEqual(v, 1) 32 v = CFSwapInt16HostToBig(0x1) 33 self.assertEqual(v, 1) 34 v = CFSwapInt32HostToBig(0x1) 35 self.assertEqual(v, 1) 36 v = CFSwapInt64HostToBig(0x1) 37 self.assertEqual(v, 1) 38 else: 39 v = CFSwapInt16BigToHost(0x1) 40 self.assertEqual(v, 1 << 8) 41 v = CFSwapInt32BigToHost(0x1) 42 self.assertEqual(v, 1 << 24) 43 v = CFSwapInt64BigToHost(0x1) 44 self.assertEqual(v, 1 << 56) 45 v = CFSwapInt16HostToBig(0x1) 46 self.assertEqual(v, 1 << 8) 47 v = CFSwapInt32HostToBig(0x1) 48 self.assertEqual(v, 1 << 24) 49 v = CFSwapInt64HostToBig(0x1) 50 self.assertEqual(v, 1 << 56) 51 52 if sys.byteorder == 'little': 53 v = CFSwapInt16LittleToHost(0x1) 54 self.assertEqual(v, 1) 55 v = CFSwapInt32LittleToHost(0x1) 56 self.assertEqual(v, 1) 57 v = CFSwapInt64LittleToHost(0x1) 58 self.assertEqual(v, 1) 59 v = CFSwapInt16HostToLittle(0x1) 60 self.assertEqual(v, 1) 61 v = CFSwapInt32HostToLittle(0x1) 62 self.assertEqual(v, 1) 63 v = CFSwapInt64HostToLittle(0x1) 64 self.assertEqual(v, 1) 65 else: 66 v = CFSwapInt16LittleToHost(0x1) 67 self.assertEqual(v, 1 << 8) 68 v = CFSwapInt32LittleToHost(0x1) 69 self.assertEqual(v, 1 << 24) 70 v = CFSwapInt64LittleToHost(0x1) 71 self.assertEqual(v, 1 << 56) 72 v = CFSwapInt16HostToLittle(0x1) 73 self.assertEqual(v, 1 << 8) 74 v = CFSwapInt32HostToLittle(0x1) 75 self.assertEqual(v, 1 << 24) 76 v = CFSwapInt64HostToLittle(0x1) 77 self.assertEqual(v, 1 << 56) 78 79 swapped = CFConvertFloat32HostToSwapped(2.5) 80 self.assertIsInstance(swapped, CFSwappedFloat32) 81 v = CFConvertFloat32SwappedToHost(swapped) 82 self.assertEqual(v , 2.5) 83 swapped = CFConvertFloat64HostToSwapped(2.5) 84 self.assertIsInstance(swapped, CFSwappedFloat64) 85 v = CFConvertFloat64SwappedToHost(swapped) 86 self.assertEqual(v , 2.5) 87 swapped = CFConvertFloatHostToSwapped(2.5) 88 self.assertIsInstance(swapped, CFSwappedFloat32) 89 v = CFConvertFloatSwappedToHost(swapped) 90 self.assertEqual(v , 2.5) 91 swapped = CFConvertDoubleHostToSwapped(2.5) 92 self.assertIsInstance(swapped, CFSwappedFloat64) 93 v = CFConvertDoubleSwappedToHost(swapped) 94 self.assertEqual(v , 2.5) 95if __name__ == "__main__": 96 main() 97