Spaces:
Running
Running
File size: 1,497 Bytes
122d3ff |
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 |
import pytest
import numpy as np
from h5py import File
from .common import TestCase
from .data_files import get_data_file_path
def test_vlen_big_endian():
with File(get_data_file_path("vlen_string_s390x.h5")) as f:
assert f.attrs["created_on_s390x"] == 1
dset = f["DSvariable"]
assert dset[0] == b"Parting"
assert dset[1] == b"is such"
assert dset[2] == b"sweet"
assert dset[3] == b"sorrow..."
dset = f["DSLEfloat"]
assert dset[0] == 3.14
assert dset[1] == 1.61
assert dset[2] == 2.71
assert dset[3] == 2.41
assert dset[4] == 1.2
assert dset.dtype == "<f8"
# Same float values with big endianness
assert f["DSBEfloat"][0] == 3.14
assert f["DSBEfloat"].dtype == ">f8"
assert f["DSLEint"][0] == 1
assert f["DSLEint"].dtype == "<u8"
# Same int values with big endianness
assert f["DSBEint"][0] == 1
assert f["DSBEint"].dtype == ">i8"
class TestEndianess(TestCase):
def test_simple_int_be(self):
fname = self.mktemp()
arr = np.ndarray(shape=(1,), dtype=">i4", buffer=bytearray([0, 1, 3, 2]))
be_number = 0 * 256 ** 3 + 1 * 256 ** 2 + 3 * 256 ** 1 + 2 * 256 ** 0
with File(fname, mode="w") as f:
f.create_dataset("int", data=arr)
with File(fname, mode="r") as f:
assert f["int"][()][0] == be_number
|