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
|
"""
Test that data encoded with earlier versions can still be decoded correctly.
"""
from __future__ import absolute_import, division, print_function
import pathlib
import unittest
import numpy as np
import h5py
from bitshuffle import __zstd__
from packaging import version
TEST_DATA_DIR = pathlib.Path(__file__).parent / "data"
OUT_FILE_TEMPLATE = "regression_%s.h5"
VERSIONS = ["0.1.3", "0.4.0"]
class TestAll(unittest.TestCase):
def test_regression(self):
for rev in VERSIONS:
file_name = TEST_DATA_DIR / (OUT_FILE_TEMPLATE % rev)
f = h5py.File(file_name, "r")
g_orig = f["original"]
g_comp = f["compressed"]
for dset_name in g_comp.keys():
self.assertTrue(np.all(g_comp[dset_name][:] == g_orig[dset_name][:]))
# Only run ZSTD comparison on versions >= 0.4.0 and if ZSTD support
# has been built into bitshuffle
if version.parse(rev) >= version.parse("0.4.0") and __zstd__:
g_comp_zstd = f["compressed_zstd"]
for dset_name in g_comp_zstd.keys():
self.assertTrue(
np.all(g_comp_zstd[dset_name][:] == g_orig[dset_name][:])
)
if __name__ == "__main__":
unittest.main()
|