File: endian_test.py

package info (click to toggle)
pysdl2 0.9.9%2Bdfsg1-6
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 3,276 kB
  • sloc: python: 18,592; makefile: 148; sh: 40
file content (85 lines) | stat: -rw-r--r-- 3,540 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import sys
import math
import pytest
from sdl2 import endian


class TestSDLEndian(object):
    __tags__ = ["sdl"]

    def test_SDL_BYTEORDER(self):
        if sys.byteorder == "little":
            assert endian.SDL_BYTEORDER == endian.SDL_LIL_ENDIAN
        else:
            assert endian.SDL_BYTEORDER == endian.SDL_BIG_ENDIAN

    def test_SDL_Swap16(self):
        assert endian.SDL_Swap16(0xFF00) == 0x00FF
        assert endian.SDL_Swap16(0x0001) == 0x0100
        assert endian.SDL_Swap16(0x0032) == 0x3200
        assert endian.SDL_Swap16(0x0FF0) == 0xF00F
        assert endian.SDL_Swap16(0x00FF) == 0xFF00
        assert endian.SDL_Swap16(0x1234) == 0x3412
        if sys.byteorder == "little":
            assert endian.SDL_Swap16 == endian.SDL_SwapBE16
            assert endian.SDL_Swap16 != endian.SDL_SwapLE16
        else:
            assert endian.SDL_Swap16 != endian.SDL_SwapBE16
            assert endian.SDL_Swap16 == endian.SDL_SwapLE16

    def test_SDL_Swap32(self):
        assert endian.SDL_Swap32(0xFF000000) == 0x000000FF
        assert endian.SDL_Swap32(0x00FF0000) == 0x0000FF00
        assert endian.SDL_Swap32(0x0000FF00) == 0x00FF0000
        assert endian.SDL_Swap32(0x000000FF) == 0xFF000000
        assert endian.SDL_Swap32(0x12345678) == 0x78563412
        assert endian.SDL_Swap32(0xFF00FF00) == 0x00FF00FF
        if sys.byteorder == "little":
            assert endian.SDL_Swap32 == endian.SDL_SwapBE32
            assert endian.SDL_Swap32 != endian.SDL_SwapLE32
        else:
            assert endian.SDL_Swap32 != endian.SDL_SwapBE32
            assert endian.SDL_Swap32 == endian.SDL_SwapLE32

    def test_SDL_Swap64(self):
        assert endian.SDL_Swap64(0xFF00000000000000) == 0x00000000000000FF
        assert endian.SDL_Swap64(0x00FF000000000000) == 0x000000000000FF00
        assert endian.SDL_Swap64(0x0000FF0000000000) == 0x0000000000FF0000
        assert endian.SDL_Swap64(0x000000FF00000000) == 0x00000000FF000000
        assert endian.SDL_Swap64(0x00000000FF000000) == 0x000000FF00000000
        assert endian.SDL_Swap64(0x0000000000FF0000) == 0x0000FF0000000000
        assert endian.SDL_Swap64(0x000000000000FF00) == 0x00FF000000000000
        assert endian.SDL_Swap64(0x00000000000000FF) == 0xFF00000000000000
        assert endian.SDL_Swap64(0x0123456789ABCDEF) == 0xEFCDAB8967452301
        if sys.byteorder == "little":
            assert endian.SDL_Swap64 == endian.SDL_SwapBE64
            assert endian.SDL_Swap64 != endian.SDL_SwapLE64
        else:
            assert endian.SDL_Swap64 != endian.SDL_SwapBE64
            assert endian.SDL_Swap64 == endian.SDL_SwapLE64

    def test_SDL_SwapFloat(self):
        v = -100.0
        while v < 101:
            p = endian.SDL_SwapFloat(v)
            assert p != v
            assert 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)
            assert p != v
            assert endian.SDL_SwapFloat(p) == v

        if sys.byteorder == "little":
            assert endian.SDL_SwapFloat == endian.SDL_SwapFloatBE
            assert endian.SDL_SwapFloat != endian.SDL_SwapFloatLE
        else:
            assert endian.SDL_SwapFloat != endian.SDL_SwapFloatBE
            assert endian.SDL_SwapFloat == endian.SDL_SwapFloatLE