mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-25 01:16:16 +03:00
Fixed binary conversion bug, and added corresponding tests
This commit is contained in:
parent
aeb1e61aa7
commit
f644adbb05
|
@ -36,7 +36,7 @@ def i16le(c, o=0):
|
|||
c: string containing bytes to convert
|
||||
o: offset of bytes to convert in string
|
||||
"""
|
||||
return unpack("<H", c[o:o+2])
|
||||
return unpack("<H", c[o:o+2])[0]
|
||||
|
||||
|
||||
def i32le(c, o=0):
|
||||
|
@ -46,15 +46,15 @@ def i32le(c, o=0):
|
|||
c: string containing bytes to convert
|
||||
o: offset of bytes to convert in string
|
||||
"""
|
||||
return unpack("<I", c[o:o+4])
|
||||
return unpack("<I", c[o:o+4])[0]
|
||||
|
||||
|
||||
def i16be(c, o=0):
|
||||
return unpack(">H", c[o:o+2])
|
||||
return unpack(">H", c[o:o+2])[0]
|
||||
|
||||
|
||||
def i32be(c, o=0):
|
||||
return unpack(">I", c[o:o+4])
|
||||
return unpack(">I", c[o:o+4])[0]
|
||||
|
||||
|
||||
# Output, le = little endian, be = big endian
|
||||
|
|
28
Tests/test_binary.py
Normal file
28
Tests/test_binary.py
Normal file
|
@ -0,0 +1,28 @@
|
|||
from helper import unittest, PillowTestCase
|
||||
|
||||
from PIL import _binary
|
||||
|
||||
class TestBinary(PillowTestCase):
|
||||
|
||||
def test_standard(self):
|
||||
self.assertEqual(_binary.i8(b'*'), 42)
|
||||
self.assertEqual(_binary.o8(42), b'*')
|
||||
|
||||
def test_little_endian(self):
|
||||
self.assertEqual(_binary.i16le(b'\xff\xff\x00\x00'), 65535)
|
||||
self.assertEqual(_binary.i32le(b'\xff\xff\x00\x00'), 65535)
|
||||
|
||||
self.assertEqual(_binary.o16le(65535), b'\xff\xff')
|
||||
self.assertEqual(_binary.o32le(65535), b'\xff\xff\x00\x00')
|
||||
|
||||
def test_big_endian(self):
|
||||
self.assertEqual(_binary.i16be(b'\x00\x00\xff\xff'), 0)
|
||||
self.assertEqual(_binary.i32be(b'\x00\x00\xff\xff'), 65535)
|
||||
|
||||
self.assertEqual(_binary.o16be(65535), b'\xff\xff')
|
||||
self.assertEqual(_binary.o32be(65535), b'\x00\x00\xff\xff')
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
# End of file
|
Loading…
Reference in New Issue
Block a user