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