def test_large_messages(): np = pytest.importorskip('numpy') psutil = pytest.importorskip('psutil') pytest.importorskip('lz4') if psutil.virtual_memory().total < 8e9: return if sys.version_info.major == 2: return 2 x = np.random.randint(0, 255, size=200000000, dtype='u1') msg = { 'x': [Serialize(x), b'small_bytes'], 'y': { 'a': Serialize(x), 'b': b'small_bytes' } } b = dumps(msg) msg2 = loads(b) assert msg['x'][1] == msg2['x'][1] assert msg['y']['b'] == msg2['y']['b'] assert (msg['x'][0].data == msg2['x'][0]).all() assert (msg['y']['a'].data == msg2['y']['a']).all()
def test_large_messages(): np = pytest.importorskip("numpy") psutil = pytest.importorskip("psutil") pytest.importorskip("lz4") if psutil.virtual_memory().total < 8e9: return if sys.version_info.major == 2: return 2 x = np.random.randint(0, 255, size=200000000, dtype="u1") msg = { "x": [Serialize(x), b"small_bytes"], "y": { "a": Serialize(x), "b": b"small_bytes" }, } b = dumps(msg) msg2 = loads(b) assert msg["x"][1] == msg2["x"][1] assert msg["y"]["b"] == msg2["y"]["b"] assert (msg["x"][0].data == msg2["x"][0]).all() assert (msg["y"]["a"].data == msg2["y"]["a"]).all()
def test_compression_1(): pytest.importorskip("lz4") np = pytest.importorskip("numpy") x = np.ones(1000000) frames = dumps({"x": Serialize(x.tobytes())}) assert sum(map(nbytes, frames)) < x.nbytes y = loads(frames) assert {"x": x.tobytes()} == y
def test_compression_1(): pytest.importorskip('lz4') np = pytest.importorskip('numpy') x = np.ones(1000000) frames = dumps({'x': Serialize(x.tobytes())}) assert sum(map(len, frames)) < x.nbytes y = loads(frames) assert {'x': x.tobytes()} == y
def test_compression_without_deserialization(): pytest.importorskip("lz4") np = pytest.importorskip("numpy") x = np.ones(1000000) frames = dumps({"x": Serialize(x)}) assert all(len(frame) < 1000000 for frame in frames) msg = loads(frames, deserialize=False) assert all(len(frame) < 1000000 for frame in msg["x"].frames)
def test_large_messages(): np = pytest.importorskip("numpy") pytest.importorskip("lz4") if MEMORY_LIMIT < 8e9: pytest.skip("insufficient memory") x = np.random.randint(0, 255, size=200000000, dtype="u1") msg = { "x": [Serialize(x), b"small_bytes"], "y": {"a": Serialize(x), "b": b"small_bytes"}, } b = dumps(msg) msg2 = loads(b) assert msg["x"][1] == msg2["x"][1] assert msg["y"]["b"] == msg2["y"]["b"] assert (msg["x"][0].data == msg2["x"][0]).all() assert (msg["y"]["a"].data == msg2["y"]["a"]).all()
def test_loads_deserialize_False(): frames = dumps({"data": Serialize(123), "status": "OK"}) msg = loads(frames) assert msg == {"data": 123, "status": "OK"} msg = loads(frames, deserialize=False) assert msg["status"] == "OK" assert isinstance(msg["data"], Serialized) result = deserialize(msg["data"].header, msg["data"].frames) assert result == 123
def test_loads_deserialize_False(): frames = dumps({'data': Serialize(123), 'status': 'OK'}) msg = loads(frames) assert msg == {'data': 123, 'status': 'OK'} msg = loads(frames, deserialize=False) assert msg['status'] == 'OK' assert isinstance(msg['data'], Serialized) result = deserialize(msg['data'].header, msg['data'].frames) assert result == 123
def test_dumps_loads_Serialize(): msg = {"x": 1, "data": Serialize(123)} frames = dumps(msg) assert len(frames) > 2 result = loads(frames) assert result == {"x": 1, "data": 123} result2 = loads(frames, deserialize=False) assert result2["x"] == 1 assert isinstance(result2["data"], Serialized) assert any(a is b for a in result2["data"].frames for b in frames) frames2 = dumps(result2) assert all(map(eq_frames, frames, frames2)) result3 = loads(frames2) assert result == result3