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