Skip to content
Snippets Groups Projects
Commit 7efaea5d authored by Oriol Tintó's avatar Oriol Tintó
Browse files

With the inclusion of SZ in hdf5plugin the pytest checks are no longer needed.

parent 144c21c3
No related branches found
No related tags found
No related merge requests found
Pipeline #16605 passed
...@@ -67,17 +67,10 @@ class AnalysisParameters: ...@@ -67,17 +67,10 @@ class AnalysisParameters:
@property @property
def compressors(self): def compressors(self):
# Check library availability and select proper analysis_function if self.options.compressor is Compressors.NONE or self.options.compressor is Compressors.ALL:
if check_libpressio_availability(): return [Compressors.ZFP, Compressors.SZ]
if self.options.compressor is Compressors.NONE or self.options.compressor is Compressors.ALL:
return [Compressors.ZFP, Compressors.SZ]
else:
return [self.options.compressor]
else: else:
if self.options.compressor is not Compressors.NONE: return [self.options.compressor]
assert self.options.compressor == Compressors.ZFP, "The only available option without libpressio is 'zfp'."
return [Compressors.ZFP]
def get_compressor_mode_combinations(self): def get_compressor_mode_combinations(self):
""" """
......
...@@ -31,6 +31,7 @@ setup(name="enstools-compression", ...@@ -31,6 +31,7 @@ setup(name="enstools-compression",
packages=find_enstools_packages(), packages=find_enstools_packages(),
install_requires=[ install_requires=[
"hdf5plugin @ git+https://github.com/orioltinto/hdf5plugin",
"enstools>=2022.9.3", "enstools>=2022.9.3",
"enstools-encoding>=0.1.9", "enstools-encoding>=0.1.9",
"zfpy", "zfpy",
......
...@@ -2,7 +2,7 @@ from os.path import isfile, join ...@@ -2,7 +2,7 @@ from os.path import isfile, join
import pytest import pytest
from enstools.encoding.api import check_sz_availability, check_libpressio_availability from enstools.encoding.api import check_libpressio_availability
from utils import file_size, wrapper, TestClass from utils import file_size, wrapper, TestClass
...@@ -53,7 +53,6 @@ class TestAnalyzer(TestClass): ...@@ -53,7 +53,6 @@ class TestAnalyzer(TestClass):
raise AssertionError(f"The resulting compression ratio of {metrics[var][cr_label]:.2f}" raise AssertionError(f"The resulting compression ratio of {metrics[var][cr_label]:.2f}"
f"x is not close enough to the target of {thresholds[cr_label]:.2f}") f"x is not close enough to the target of {thresholds[cr_label]:.2f}")
@pytest.mark.skipif(not check_libpressio_availability(), reason="Requires libpressio")
def test_sz_analyzer(self): def test_sz_analyzer(self):
from enstools.compression.api import analyze_files from enstools.compression.api import analyze_files
input_tempdir = self.input_directory_path input_tempdir = self.input_directory_path
......
...@@ -3,7 +3,7 @@ Tests for the commandline interface. ...@@ -3,7 +3,7 @@ Tests for the commandline interface.
""" """
from os.path import isfile, join from os.path import isfile, join
from enstools.encoding.compressors.availability_checks import check_sz_availability, check_libpressio_availability from enstools.encoding.compressors.availability_checks import check_libpressio_availability
import pytest import pytest
from utils import TestClass from utils import TestClass
...@@ -91,8 +91,6 @@ class TestCommandLineInterface(TestClass): ...@@ -91,8 +91,6 @@ class TestCommandLineInterface(TestClass):
mocker.patch("sys.argv", commands) mocker.patch("sys.argv", commands)
enstools.compression.cli.main() enstools.compression.cli.main()
@pytest.mark.skipif(not check_sz_availability() and not check_libpressio_availability(),
reason="Requires SZ and libpressio")
def test_analyze_with_sz_and_plugin(self, mocker): def test_analyze_with_sz_and_plugin(self, mocker):
""" """
Test enstools-compressor analyze using a custom plugin. Test enstools-compressor analyze using a custom plugin.
......
...@@ -2,8 +2,6 @@ from os.path import isfile, join ...@@ -2,8 +2,6 @@ from os.path import isfile, join
import pytest import pytest
from enstools.encoding.api import check_sz_availability
from utils import file_size, wrapper, TestClass from utils import file_size, wrapper, TestClass
folders = None folders = None
...@@ -76,7 +74,6 @@ class TestCompressor(TestClass): ...@@ -76,7 +74,6 @@ class TestCompressor(TestClass):
final_size = file_size(output_file_path) final_size = file_size(output_file_path)
assert initial_size > final_size assert initial_size > final_size
@pytest.mark.skipif(not check_sz_availability(), reason="Requires SZ")
def test_filters_availability(self): def test_filters_availability(self):
from enstools.encoding.api import check_filters_availability from enstools.encoding.api import check_filters_availability
assert check_filters_availability() assert check_filters_availability()
......
from enstools.encoding.api import Compressors, CompressionModes, check_sz_availability, check_libpressio_availability from enstools.encoding.api import Compressors, CompressionModes, check_libpressio_availability
from utils import TestClass from utils import TestClass
import numpy as np import numpy as np
...@@ -52,7 +52,6 @@ class TestEmulators: ...@@ -52,7 +52,6 @@ class TestEmulators:
recovered_data = analysis_compressor.compress_and_decompress(data) recovered_data = analysis_compressor.compress_and_decompress(data)
print(f"Compression Ratio:{analysis_compressor.compression_ratio():.2f}") print(f"Compression Ratio:{analysis_compressor.compression_ratio():.2f}")
@pytest.mark.skipif(not check_sz_availability(), reason="Requires SZ filter.")
def test_FilterAnalysisCompressor_with_SZ(self): def test_FilterAnalysisCompressor_with_SZ(self):
from enstools.compression.emulators import FilterEmulator from enstools.compression.emulators import FilterEmulator
settings = { settings = {
...@@ -83,7 +82,6 @@ class TestEmulate(TestClass): ...@@ -83,7 +82,6 @@ class TestEmulate(TestClass):
for compression_specification in compression_specifications: for compression_specification in compression_specifications:
ds, _ = emulate_compression_on_dataset(ds, compression=compression_specification) ds, _ = emulate_compression_on_dataset(ds, compression=compression_specification)
@pytest.mark.skipif(not check_sz_availability(), reason="Requires SZ filter.")
def test_emulation_with_sz(self): def test_emulation_with_sz(self):
from enstools.io import read from enstools.io import read
from enstools.compression.emulation import emulate_compression_on_dataset from enstools.compression.emulation import emulate_compression_on_dataset
......
...@@ -2,7 +2,7 @@ from os.path import join ...@@ -2,7 +2,7 @@ from os.path import join
import pytest import pytest
from enstools.encoding.api import check_sz_availability, check_libpressio_availability from enstools.encoding.api import check_libpressio_availability
from utils import wrapper, TestClass from utils import wrapper, TestClass
...@@ -10,14 +10,6 @@ folders = None ...@@ -10,14 +10,6 @@ folders = None
class TestSZ(TestClass): class TestSZ(TestClass):
@pytest.mark.skipif(check_sz_availability(), reason="Requires SZ not being available")
def test_sz_checker(self):
from enstools.encoding.errors import EnstoolsCompressionError
compression = "lossy,sz,pw_rel,0.1"
with pytest.raises(EnstoolsCompressionError):
wrapper(self, compression=compression)
@pytest.mark.skipif(not check_libpressio_availability(), reason="Requires libpressio")
def test_sz_analyzer(self): def test_sz_analyzer(self):
from enstools.compression.api import analyze_files from enstools.compression.api import analyze_files
# Check that the compression without specifying compression parameters works # Check that the compression without specifying compression parameters works
...@@ -26,17 +18,14 @@ class TestSZ(TestClass): ...@@ -26,17 +18,14 @@ class TestSZ(TestClass):
input_path = self.input_directory_path / ds input_path = self.input_directory_path / ds
analyze_files(file_paths=input_path, compressor="sz") analyze_files(file_paths=input_path, compressor="sz")
@pytest.mark.skipif(not check_sz_availability(), reason="Requires SZ")
def test_compress_sz_pw_rel(self): def test_compress_sz_pw_rel(self):
compression = "lossy,sz,pw_rel,0.1" compression = "lossy,sz,pw_rel,0.1"
wrapper(self, compression=compression) wrapper(self, compression=compression)
@pytest.mark.skipif(not check_sz_availability(), reason="Requires SZ")
def test_compress_sz_abs(self): def test_compress_sz_abs(self):
compression = "lossy,sz,abs,0.01" compression = "lossy,sz,abs,0.01"
wrapper(self, compression=compression) wrapper(self, compression=compression)
@pytest.mark.skipif(not check_sz_availability(), reason="Requires SZ")
def test_compress_sz_rel(self): def test_compress_sz_rel(self):
compression = "lossy,sz,rel,0.001" compression = "lossy,sz,rel,0.001"
wrapper(self, compression=compression) wrapper(self, compression=compression)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment