Esempio n. 1
0
def test_uint64():
    if sys.maxint != (1 << 63) - 1:
        py.test.skip('64 bit only')
    if IS_PYPY and sys.pypy_version_info < (5, 6):
        py.test.skip('Broken on PyPy<5.6')
    #
    buf = struct.pack('Q', sys.maxint)
    val = unpack_primitive(ord('Q'), buf, 0)
    assert val == sys.maxint
    assert type(val) is int
    #
    buf = struct.pack('Q', sys.maxint + 1)
    val = unpack_primitive(ord('Q'), buf, 0)
    assert val == sys.maxint + 1
    assert type(val) is long
Esempio n. 2
0
 def sum_unpack(buf):
     mybufs = (buf, buf)
     res = 0
     for i in range(self.N):
         buf = mybufs[i%2]
         res += unpack_primitive(ord('q'), buf, 16)
     return res
Esempio n. 3
0
def test_unpack_primitive_ints():
    buf = '\xff' * 8
    assert unpack_primitive(ord('b'), buf, 0) == -1
    assert unpack_primitive(ord('h'), buf, 0) == -1
    assert unpack_primitive(ord('i'), buf, 0) == -1
    assert unpack_primitive(ord('q'), buf, 0) == -1
    #
    assert unpack_primitive(ord('B'), buf, 0) == (1 << 8) - 1
    assert unpack_primitive(ord('H'), buf, 0) == (1 << 16) - 1
    assert unpack_primitive(ord('I'), buf, 0) == (1 << 32) - 1
    assert unpack_primitive(ord('Q'), buf, 0) == (1 << 64) - 1
Esempio n. 4
0
def test_bytearray():
    buf = bytearray(struct.pack('q', 42))
    assert unpack_primitive(ord('q'), buf, 0) == 42
Esempio n. 5
0
def test_unpack_primitive_floats():
    buf = struct.pack('f', math.pi)
    assert unpack_primitive(ord('f'), buf, 0) == struct.unpack('f', buf)[0]
    #
    buf = struct.pack('d', math.pi)
    assert unpack_primitive(ord('d'), buf, 0) == struct.unpack('d', buf)[0]
Esempio n. 6
0
 def setbool(self, byteoffset, bitoffset, value):
     ifmt = Types.uint8.ifmt
     current = unpack_primitive(ifmt, self._buf, byteoffset)
     current |= (value << bitoffset)
     self.set(ifmt, byteoffset, current)
Esempio n. 7
0
 def read_primitive(self, offset, ifmt):
     return unpack_primitive(ifmt, self.s, offset)