treasurehunting2/PySDL2-0.9.5/sdl2/test/endian_test.py
2017-05-13 11:00:53 +02:00

99 lines
4.2 KiB
Python

import sys
import math
import unittest
from .. import endian
class SDLEndianTest(unittest.TestCase):
__tags__ = ["sdl"]
def test_SDL_BYTEORDER(self):
if sys.byteorder == "little":
self.assertEqual(endian.SDL_BYTEORDER, endian.SDL_LIL_ENDIAN)
else:
self.assertEqual(endian.SDL_BYTEORDER, endian.SDL_BIG_ENDIAN)
def test_SDL_Swap16(self):
self.assertEqual(endian.SDL_Swap16(0xFF00), 0x00FF)
self.assertEqual(endian.SDL_Swap16(0x0001), 0x0100)
self.assertEqual(endian.SDL_Swap16(0x0032), 0x3200)
self.assertEqual(endian.SDL_Swap16(0x0FF0), 0xF00F)
self.assertEqual(endian.SDL_Swap16(0x00FF), 0xFF00)
self.assertEqual(endian.SDL_Swap16(0x1234), 0x3412)
if sys.byteorder == "little":
self.assertEqual(endian.SDL_Swap16, endian.SDL_SwapBE16)
self.assertNotEqual(endian.SDL_Swap16, endian.SDL_SwapLE16)
else:
self.assertNotEqual(endian.SDL_Swap16, endian.SDL_SwapBE16)
self.assertEqual(endian.SDL_Swap16, endian.SDL_SwapLE16)
def test_SDL_Swap32(self):
self.assertEqual(endian.SDL_Swap32(0xFF000000), 0x000000FF)
self.assertEqual(endian.SDL_Swap32(0x00FF0000), 0x0000FF00)
self.assertEqual(endian.SDL_Swap32(0x0000FF00), 0x00FF0000)
self.assertEqual(endian.SDL_Swap32(0x000000FF), 0xFF000000)
self.assertEqual(endian.SDL_Swap32(0x12345678), 0x78563412)
self.assertEqual(endian.SDL_Swap32(0xFF00FF00), 0x00FF00FF)
if sys.byteorder == "little":
self.assertEqual(endian.SDL_Swap32, endian.SDL_SwapBE32)
self.assertNotEqual(endian.SDL_Swap32, endian.SDL_SwapLE32)
else:
self.assertNotEqual(endian.SDL_Swap32, endian.SDL_SwapBE32)
self.assertEqual(endian.SDL_Swap32, endian.SDL_SwapLE32)
def test_SDL_Swap64(self):
self.assertEqual(endian.SDL_Swap64(0xFF00000000000000),
0x00000000000000FF)
self.assertEqual(endian.SDL_Swap64(0x00FF000000000000),
0x000000000000FF00)
self.assertEqual(endian.SDL_Swap64(0x0000FF0000000000),
0x0000000000FF0000)
self.assertEqual(endian.SDL_Swap64(0x000000FF00000000),
0x00000000FF000000)
self.assertEqual(endian.SDL_Swap64(0x00000000FF000000),
0x000000FF00000000)
self.assertEqual(endian.SDL_Swap64(0x0000000000FF0000),
0x0000FF0000000000)
self.assertEqual(endian.SDL_Swap64(0x000000000000FF00),
0x00FF000000000000)
self.assertEqual(endian.SDL_Swap64(0x00000000000000FF),
0xFF00000000000000)
self.assertEqual(endian.SDL_Swap64(0x0123456789ABCDEF),
0xEFCDAB8967452301)
if sys.byteorder == "little":
self.assertEqual(endian.SDL_Swap64, endian.SDL_SwapBE64)
self.assertNotEqual(endian.SDL_Swap64, endian.SDL_SwapLE64)
else:
self.assertNotEqual(endian.SDL_Swap64, endian.SDL_SwapBE64)
self.assertEqual(endian.SDL_Swap64, endian.SDL_SwapLE64)
def test_SDL_SwapFloat(self):
v = -100.0
while v < 101:
p = endian.SDL_SwapFloat(v)
self.assertNotEqual(p, v)
self.assertEqual(endian.SDL_SwapFloat(p), v)
v += 0.1
values = (sys.float_info.epsilon,
sys.float_info.min,
sys.float_info.max,
- sys.float_info.min,
math.pi,
- math.pi
)
for v in values:
p = endian.SDL_SwapFloat(v)
self.assertNotEqual(p, v)
self.assertEqual(endian.SDL_SwapFloat(p), v)
if sys.byteorder == "little":
self.assertEqual(endian.SDL_SwapFloat, endian.SDL_SwapFloatBE)
self.assertNotEqual(endian.SDL_SwapFloat, endian.SDL_SwapFloatLE)
else:
self.assertNotEqual(endian.SDL_SwapFloat, endian.SDL_SwapFloatBE)
self.assertEqual(endian.SDL_SwapFloat, endian.SDL_SwapFloatLE)
if __name__ == '__main__':
sys.exit(unittest.main())