1from PyObjCTools.TestSupport import *
2import sys
3
4from Foundation import *
5import Foundation
6
7class TestNSByteOrder (TestCase):
8    def testConstants(self):
9        self.assertEqual(NS_UnknownByteOrder, CFByteOrderUnknown)
10        self.assertEqual(NS_LittleEndian, CFByteOrderLittleEndian)
11        self.assertEqual(NS_BigEndian, CFByteOrderBigEndian)
12
13    def testInlines(self):
14        self.assertEqual(NSHostByteOrder(), CFByteOrderGetCurrent())
15        self.assertEqual(NSSwapShort(350), CFSwapInt16(350))
16        self.assertEqual(NSSwapInt(350), CFSwapInt32(350))
17
18        if sys.maxsize > 2 ** 32:
19            self.assertEqual(NSSwapLong(350), CFSwapInt64(350))
20            self.assertEqual(NSSwapBigLongToHost(350), CFSwapInt64BigToHost(350))
21            self.assertEqual(NSSwapHostLongToBig(350), CFSwapInt64HostToBig(350))
22            self.assertEqual(NSSwapLittleLongToHost(350), CFSwapInt64LittleToHost(350))
23            self.assertEqual(NSSwapHostLongToLittle(350), CFSwapInt64HostToLittle(350))
24        else:
25            self.assertEqual(NSSwapLong(350), CFSwapInt32(350))
26            self.assertEqual(NSSwapBigLongToHost(350), CFSwapInt32BigToHost(350))
27            self.assertEqual(NSSwapHostLongToBig(350), CFSwapInt32HostToBig(350))
28            self.assertEqual(NSSwapLittleLongToHost(350), CFSwapInt32LittleToHost(350))
29            self.assertEqual(NSSwapHostLongToLittle(350), CFSwapInt32HostToLittle(350))
30
31
32        self.assertEqual(NSSwapLongLong(350), CFSwapInt64(350))
33        self.assertEqual(NSSwapBigShortToHost(350), CFSwapInt16BigToHost(350))
34        self.assertEqual(NSSwapBigIntToHost(350), CFSwapInt32BigToHost(350))
35        self.assertEqual(NSSwapBigLongLongToHost(350), CFSwapInt64BigToHost(350))
36        self.assertEqual(NSSwapHostShortToBig(350), CFSwapInt16HostToBig(350))
37        self.assertEqual(NSSwapHostIntToBig(350), CFSwapInt32HostToBig(350))
38        self.assertEqual(NSSwapHostLongLongToBig(350), CFSwapInt64HostToBig(350))
39        self.assertEqual(NSSwapLittleShortToHost(350), CFSwapInt16LittleToHost(350))
40        self.assertEqual(NSSwapLittleIntToHost(350), CFSwapInt32LittleToHost(350))
41        self.assertEqual(NSSwapLittleLongLongToHost(350), CFSwapInt64LittleToHost(350))
42        self.assertEqual(NSSwapHostShortToLittle(350), CFSwapInt16HostToLittle(350))
43        self.assertEqual(NSSwapHostIntToLittle(350), CFSwapInt32HostToLittle(350))
44        self.assertEqual(NSSwapHostLongLongToLittle(350), CFSwapInt64HostToLittle(350))
45
46        v = NSConvertHostFloatToSwapped(55.0)
47        self.assertIsInstance(v, NSSwappedFloat)
48        n = NSConvertSwappedFloatToHost(v)
49        self.assertEqual(n, 55.0)
50
51        v = NSSwapFloat(v)
52        self.assertIsInstance(v, NSSwappedFloat)
53        v = NSConvertHostDoubleToSwapped(55.0)
54        self.assertIsInstance(v, NSSwappedDouble)
55        n = NSConvertSwappedDoubleToHost(v)
56        self.assertEqual(n, 55.0)
57
58        v = NSSwapDouble(v)
59        self.assertIsInstance(v, NSSwappedDouble)
60        n = NSSwapBigDoubleToHost(v)
61        self.assertIsInstance(n, float)
62        n = NSSwapLittleDoubleToHost(v)
63        self.assertIsInstance(n, float)
64        v = NSConvertHostFloatToSwapped(55.0)
65        n = NSSwapBigFloatToHost(v)
66        self.assertIsInstance(n, float)
67        n = NSSwapLittleFloatToHost(v)
68        self.assertIsInstance(n, float)
69        v = NSSwapHostDoubleToBig(55.0)
70        self.assertIsInstance(v, NSSwappedDouble)
71        v = NSSwapHostDoubleToLittle(55.0)
72        self.assertIsInstance(v, NSSwappedDouble)
73        v = NSSwapHostFloatToBig(55.0)
74        self.assertIsInstance(v, NSSwappedFloat)
75        v = NSSwapHostFloatToLittle(55.0)
76        self.assertIsInstance(v, NSSwappedFloat)
77
78if __name__ == "__main__":
79    main()
80