From 222cdae2f0e2eb1fb199aa2861aa07528f8868a3 Mon Sep 17 00:00:00 2001 From: Zhichao Zhang <zhichao.zhang@stud.tu-darmstadt.de> Date: Mon, 5 Sep 2022 21:06:07 +0200 Subject: [PATCH] change import structure in test files and adjust it to new project structure --- Tests/test_dataset.py | 51 ++++++++++++-------- Tests/test_dataset_image.py | 90 +++++++++++++++++++++-------------- Tests/test_dataset_video.py | 68 +++++++++++++++++---------- Tests/test_instrument.py | 55 +++++++++++++--------- Tests/test_model.py | 59 +++++++++++++---------- Tests/test_parameter.py | 51 +++++++++++--------- Tests/test_pipeline.py | 82 ++++++++++++++++++-------------- Tests/test_run.py | 93 +++++++++++++++++++++---------------- 8 files changed, 330 insertions(+), 219 deletions(-) diff --git a/Tests/test_dataset.py b/Tests/test_dataset.py index 9953e65..689f742 100644 --- a/Tests/test_dataset.py +++ b/Tests/test_dataset.py @@ -1,40 +1,53 @@ from pathlib import Path + import numpy as np -from components import * +from pykkn.dataset import Dataset + +test_result_path = Path("./test_result") +if not test_result_path.exists(): + test_result_path.mkdir() -dataset = Dataset('dataset1') +dataset = Dataset("dataset1") dataset.data = np.double(1) -dataset.attrs['samplerate'] = 1000 -dataset.attrs['timestamp'] = '2022-06-12 10:39:11' -dataset.set_storage_path('tests/test_results/test_dataset.h5') +dataset.attrs["samplerate"] = 1000 +dataset.attrs["timestamp"] = "2022-06-12 10:39:11" +dataset.set_storage_path(test_result_path / "test_dataset.h5") dataset.store() -dataset.store(format='json') +dataset.store(format="json") + def test_name(): - assert dataset.name == 'dataset1' + assert dataset.name == "dataset1" + def test_data(): assert dataset.data == 1 - -def test_data_type(): + + +def test_data_type(): assert np.issubdtype(dataset.data.dtype, float) + def test_samplerate_value(): - assert dataset.attrs['samplerate'] == 1000 - + assert dataset.attrs["samplerate"] == 1000 + + def test_samplerate_type(): - assert isinstance(dataset.attrs['samplerate'], float) + assert isinstance(dataset.attrs["samplerate"], float) + def test_timestamp(): - assert dataset.attrs['timestamp'] == '2022-06-12 10:39:11' + assert dataset.attrs["timestamp"] == "2022-06-12 10:39:11" + def test_other_attributes(): - assert dataset.storage_path == Path('test/test_ut_ds.h5') + assert dataset.storage_path == str(Path(test_result_path + / "test_dataset.json")) assert dataset.is_dataset is True - assert dataset.attrs['kkn_CLASS'] == 'DATASET' - assert dataset.attrs['kkn_DATASET_SUBCLASS'] == 'TIMESERIES' - assert dataset.attrs['kkn_TIMESERIES_VERSION'] == '1.0' + assert dataset.attrs["kkn_CLASS"] == "DATASET" + assert dataset.attrs["kkn_DATASET_SUBCLASS"] == "TIMESERIES" + assert dataset.attrs["kkn_TIMESERIES_VERSION"] == "1.0" + def test_file_exist(): - assert dataset.storage_path.exists() - \ No newline at end of file + assert Path(test_result_path / "test_dataset.h5").exists() diff --git a/Tests/test_dataset_image.py b/Tests/test_dataset_image.py index f14365d..870f595 100644 --- a/Tests/test_dataset_image.py +++ b/Tests/test_dataset_image.py @@ -1,52 +1,74 @@ -import numpy as np from pathlib import Path -from components import * -dataset = Dataset_Image('image_dataset') -dataset.data = 'tests/test_resources/color.png' -dataset.set_storage_path('tests/test_results/dataset_image.h5') +import requests +from pykkn.dataset_image import Dataset_Image + +url = 'https://www.learningcontainer.com/wp-content/uploads/2020/07/sample' \ + '-image-files-for-testing-300x300.png?ezimgfmt=rs:300x300/rscb4/ngcb' \ + '4/notWebP' + +tmp_path = Path('./.tmp') +if not tmp_path.exists(): + tmp_path.mkdir() + +r = requests.get(url) +with open(tmp_path / 'test.png', 'wb') as f: + f.write(r.content) + +test_result_path = Path('./test_result') +if not test_result_path.exists(): + test_result_path.mkdir() + +dataset = Dataset_Image("image_dataset") +dataset.data = tmp_path / 'test.png' +dataset.set_storage_path(test_result_path / "dataset_image.h5") dataset.store() -dataset.store(format='json') +dataset.store(format="json") + def test_name(): - assert dataset.name == 'image_dataset' + assert dataset.name == "image_dataset" + # here for image data content, we will not check its data type -# because in pillow lib, there are lots of classes for image, such as PngImageFile, JrpgImageFIle etc. +# because in pillow lib, there are lots of classes for image +# such as PngImageFile, JrpgImageFIle etc. # so it is too complicated to check # def test_data_type(): # assert isinstance(dataset.data, PIL.PngImagePlugin.PngImageFile) # also here we will only check necessary attributes for a dataset instance -def test_image_attr(): - assert dataset.attrs['CLASS'] == np.string_('IMAGE') - # assert dataset.attrs['IMAGE_MINMAXRANGE'] == np.array([0, 255]) - assert dataset.attrs['IMAGE_SUBCLASS'] == np.string_('IMAGE_TRUECOLOR') - # assert dataset.attrs['IMAGE_VERSION'] == np.string_('1.2') - # assert dataset.attrs['INTERLACE_MODE'] == np.string_('INTERLACE_PIXEL') - - assert dataset.attrs['file_name'] == 'color.png' - assert dataset.attrs['file_format'] == 'PNG' - assert dataset.attrs['image_mode'] == 'RGBA' - - assert dataset.attrs['shape'] == (508, 378, 4) - assert dataset.attrs['image_width'] == 378 - assert dataset.attrs['image_height'] == 508 - assert dataset.attrs['num_channels'] == 4 - assert dataset.attrs['data_type'] == 'uint8' - +def test_image_attr(): + assert dataset.attrs["CLASS"] == "IMAGE" + # assert dataset.attrs['IMAGE_MINMAXRANGE'] == np.array([0, 255]) + assert dataset.attrs["IMAGE_SUBCLASS"] == "IMAGE_TRUECOLOR" + # assert dataset.attrs['IMAGE_VERSION'] == np.string_('1.2') + # assert dataset.attrs['INTERLACE_MODE'] == np.string_('INTERLACE_PIXEL') + + assert dataset.attrs["file_name"] == "test.png" + assert dataset.attrs["file_format"] == "PNG" + assert dataset.attrs["image_mode"] == "RGBA" + + assert dataset.attrs["shape"] == (300, 300, 4) + assert dataset.attrs["image_width"] == 300 + assert dataset.attrs["image_height"] == 300 + assert dataset.attrs["num_channels"] == 4 + assert dataset.attrs["data_type"] == "uint8" + def test_other_attributes(): - # With opencv as an example (Pillow would be the exact same) - assert dataset.storage_path == Path('test/test_ut_img.h5') - assert dataset.is_dataset is True - assert dataset.attrs['kkn_CLASS'] == 'DATASET' - assert dataset.attrs['kkn_DATASET_SUBCLASS'] == 'IMAGE' - assert dataset.attrs['kkn_DATASET_VERSION'] == '1.0' + # With opencv as an example (Pillow would be the exact same) + assert dataset.storage_path == str(Path( + test_result_path / "dataset_image.json")) + assert dataset.is_dataset is True + assert dataset.attrs["kkn_CLASS"] == "DATASET" + assert dataset.attrs["kkn_DATASET_SUBCLASS"] == "IMAGE" + assert dataset.attrs["kkn_DATASET_VERSION"] == "1.0" -def test_file_exist(): - assert dataset.storage_path.exists() +def test_file_exist(): + assert Path(test_result_path / "dataset_image.h5").exists() + assert Path(test_result_path / "dataset_image.json").exists() - \ No newline at end of file +# TODO check using reading HDF5 file and JSON file diff --git a/Tests/test_dataset_video.py b/Tests/test_dataset_video.py index b96be85..e1f4c1e 100644 --- a/Tests/test_dataset_video.py +++ b/Tests/test_dataset_video.py @@ -1,41 +1,61 @@ from pathlib import Path -import numpy as np -from components import * +import requests +from pykkn.dataset_video import Dataset_Video -dataset = Dataset_Video('video_dataset_1') -dataset.data = "tests/test_resources/file_example_MP4_1920_18MG.mp4" -dataset.attrs['timestamp'] = '2022-06-13 11:22:11' -dataset.set_storage_path('tests/test_results/dataset_video.h5') +url = "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" + +tmp_path = Path("./.tmp") +if not tmp_path.exists(): + tmp_path.mkdir() + +r = requests.get(url) +with open(tmp_path / "test.mp4", "wb") as f: + f.write(r.content) + +test_result_path = Path("./test_result") +if not test_result_path.exists(): + test_result_path.mkdir() + +with open("test.mp4", "wb") as f: + f.write(r.content) + +dataset = Dataset_Video("video_dataset_1") +dataset.data = tmp_path / "test.mp4" +dataset.attrs["timestamp"] = "2022-06-13 11:22:11" +dataset.set_storage_path(test_result_path / "dataset_video.h5") dataset.store() -dataset.store(format='json') +dataset.store(format="json") + def test_name(): - assert dataset.name == 'video_dataset_1' + assert dataset.name == "video_dataset_1" -def test_data_type(): - assert isinstance(dataset._data, np.void) def test_video_attrs(): - assert dataset.attrs['video_fps'] == 30 - assert dataset.attrs['video_height'] == 1080 - assert dataset.attrs['video_length'] == '30s' - assert dataset.attrs['video_num_frames'] == 916 - assert dataset.attrs['video_width'] == 1920 - assert dataset.attrs['file_name'] == 'file_example_MP4_1920_18MG.mp4' - assert dataset.attrs['file_suffix'] == 'mp4' + assert dataset.attrs["video_fps"] == 23 + assert dataset.attrs["video_height"] == 360 + assert dataset.attrs["video_length"] == "62s" + assert dataset.attrs["video_num_frames"] == 1440 + assert dataset.attrs["video_width"] == 640 + assert dataset.attrs["file_name"] == "test.mp4" + assert dataset.attrs["file_suffix"] == "mp4" + def test_timestamp(): - assert dataset.attrs['timestamp'] == '2022-06-13 11:22:11' + assert dataset.attrs["timestamp"] == "2022-06-13 11:22:11" + def test_other_attributes(): - assert dataset.storage_path == Path('test/test_ut_video.h5') + assert dataset.storage_path == str(Path(test_result_path + / "dataset_video.json")) assert dataset.is_dataset is True - assert dataset.attrs['kkn_CLASS'] == 'DATASET' - assert dataset.attrs['kkn_DATASET_SUBCLASS'] == 'VIDEO' - assert dataset.attrs['kkn_TIMESERIES_VERSION'] == '1.0' + assert dataset.attrs["kkn_CLASS"] == "DATASET" + assert dataset.attrs["kkn_DATASET_SUBCLASS"] == "VIDEO" + assert dataset.attrs["kkn_TIMESERIES_VERSION"] == "1.0" + def test_file_exist(): - assert dataset.storage_path.exists() - \ No newline at end of file + assert Path(test_result_path / "dataset_video.h5").exists() + assert Path(test_result_path / "dataset_video.json").exists() diff --git a/Tests/test_instrument.py b/Tests/test_instrument.py index b2b6a16..77b6148 100644 --- a/Tests/test_instrument.py +++ b/Tests/test_instrument.py @@ -1,41 +1,50 @@ from pathlib import Path import pytest -from components import * +from pykkn.instrument import Instrument +from pykkn.model import Model +from pykkn.parameter import Parameter -para1 = Parameter('para1') -para1.attrs['value'] = 1 -para1.attrs['units'] = 'cm' -para1.attrs['variable'] = '-' -para1.attrs['origin'] = 'this' +test_result_path = Path("./test_result") +if not test_result_path.exists(): + test_result_path.mkdir() -para2 = Parameter('para2') -para2.attrs['value'] = 2 -para2.attrs['units'] = 'mm' -para2.attrs['variable'] = '-' -para2.attrs['origin'] = 'this' +para1 = Parameter("para1") +para1.attrs["value"] = 1 +para1.attrs["units"] = "cm" +para1.attrs["variable"] = "-" +para1.attrs["origin"] = "this" -model1 = Model('model1') +para2 = Parameter("para2") +para2.attrs["value"] = 2 +para2.attrs["units"] = "mm" +para2.attrs["variable"] = "-" +para2.attrs["origin"] = "this" + +model1 = Model("model1") model1.add([para1, para2]) -model2 = Model('model2') +model2 = Model("model2") model2.add([para2, para1]) -instr1 = Instrument('instr1') +instr1 = Instrument("instr1") instr1.add([model1, model2]) -instr1.set_storage_path('tests/test_results/instrument.h5') +instr1.set_storage_path(test_result_path / "instrument.h5") instr1.store() -instr1.store(format='json') +instr1.store(format="json") + def test_name(): - assert instr1.name == 'instr1' + assert instr1.name == "instr1" + def test_params(): assert len(instr1.model) == 2 assert instr1.model[0] == model1 assert instr1.model[1] == model2 + def test_wrong_para_input(): with pytest.raises(AssertionError): instr1.add(model1) @@ -44,12 +53,14 @@ def test_wrong_para_input(): with pytest.raises(TypeError): instr1.add([instr1]) + def test_other_attributes(): - assert instr1.storage_path == Path('test/test_ut_is.h5') + assert instr1.storage_path == str(Path(test_result_path + / "instrument.json")) assert instr1.is_dataset is False - assert instr1.attrs['kkn_CLASS'] == 'INSTRUMENT' - assert instr1.attrs['kkn_INSTRUMENT_VERSION'] == '1.0' + assert instr1.attrs["kkn_CLASS"] == "INSTRUMENT" + assert instr1.attrs["kkn_INSTRUMENT_VERSION"] == "1.0" + def test_file_exist(): - assert instr1.storage_path.exists() - \ No newline at end of file + assert Path(test_result_path / "instrument.h5").exists() diff --git a/Tests/test_model.py b/Tests/test_model.py index 7faf3a0..8141fa4 100644 --- a/Tests/test_model.py +++ b/Tests/test_model.py @@ -1,37 +1,47 @@ from pathlib import Path -import pytest -from components import * - -para1 = Parameter('para1') -para1.attrs['value'] = 1 -para1.attrs['units'] = 'cm' -para1.attrs['variable'] = '-' -para1.attrs['origin'] = 'this' - -para2 = Parameter('para2') -para2.attrs['value'] = 2 -para2.attrs['units'] = 'mm' -para2.attrs['variable'] = '-' -para2.attrs['origin'] = 'this' -model1 = Model('model1') +import pytest +from pykkn.model import Model +from pykkn.parameter import Parameter + +test_result_path = Path("./test_result") +if not test_result_path.exists(): + test_result_path.mkdir() + +para1 = Parameter("para1") +para1.attrs["value"] = 1 +para1.attrs["units"] = "cm" +para1.attrs["variable"] = "-" +para1.attrs["origin"] = "this" + +para2 = Parameter("para2") +para2.attrs["value"] = 2 +para2.attrs["units"] = "mm" +para2.attrs["variable"] = "-" +para2.attrs["origin"] = "this" + +model1 = Model("model1") model1.add([para1, para2]) -model1.set_storage_path('tests/test_results/model.h5') +model1.set_storage_path(test_result_path / "model.h5") model1.store() -model1.store(format='json') +model1.store(format="json") + def test_name(): - assert model1.name == 'model1' + assert model1.name == "model1" + def test_params(): assert len(model1.parameters) == 2 assert model1.parameters[0] == para1 assert model1.parameters[1] == para2 + def test_values(): assert model1.parameters[0].data == 1 assert model1.parameters[1].data == 2 + def test_wrong_para_input(): with pytest.raises(AssertionError): model1.add(para1) @@ -40,13 +50,14 @@ def test_wrong_para_input(): with pytest.raises(TypeError): model1.add([model1]) + def test_other_attributes(): - assert model1.storage_path == Path('test/test_ut_md.h5') + assert model1.storage_path == str(Path(test_result_path / "model.json")) assert model1.is_dataset is False - assert model1.attrs['kkn_CLASS'] == 'MODEL' - assert model1.attrs['kkn_MODEL_SUBCLASS'] == 'POLY' - assert model1.attrs['kkn_POLY_VERSION'] == '1.0' + assert model1.attrs["kkn_CLASS"] == "MODEL" + assert model1.attrs["kkn_MODEL_SUBCLASS"] == "POLY" + assert model1.attrs["kkn_POLY_VERSION"] == "1.0" + def test_file_exist(): - assert model1.storage_path.exists() - \ No newline at end of file + assert Path(test_result_path / "model.h5").exists() diff --git a/Tests/test_parameter.py b/Tests/test_parameter.py index fd366e3..083d79c 100644 --- a/Tests/test_parameter.py +++ b/Tests/test_parameter.py @@ -1,37 +1,42 @@ from pathlib import Path + import numpy as np -from components import * - -para1 = Parameter('para1') -para1.attrs['value'] = 1 -para1.attrs['units'] = 'cm' -para1.attrs['variable'] = '-' -para1.attrs['origin'] = 'this' -para1.set_storage_path('tests/test_results/parameter.h5') +from pykkn.parameter import Parameter + +test_result_path = Path("./test_result") +if not test_result_path.exists(): + test_result_path.mkdir() + +para1 = Parameter("para1") +para1.attrs["value"] = 1 +para1.attrs["units"] = "cm" +para1.attrs["variable"] = "-" +para1.attrs["origin"] = "this" +para1.set_storage_path(test_result_path / "parameter.h5") para1.store() -para1.store(format='json') +para1.store(format="json") def test_name(): - assert para1.name == 'para1' + assert para1.name == "para1" + def test_value(): assert para1.data == np.array(1).astype(np.double) - + + def test_other_attrs(): - assert para1.attrs['units'] == 'cm' - assert para1.attrs['variable'] == '-' - assert para1.attrs['origin'] == 'this' - -def test_data_type(): - assert np.issubdtype(para1.data.dtype, float) - + assert para1.attrs["units"] == "cm" + assert para1.attrs["variable"] == "-" + assert para1.attrs["origin"] == "this" + + def test_other_attributes(): - assert para1.storage_path == Path('test/test_ut_pm.h5') + assert para1.storage_path == str(Path(test_result_path / "parameter.json")) assert para1.is_dataset is True - assert para1.attrs['kkn_CLASS'] == 'PARAMETER' - assert para1.attrs['kkn_PARAMETER_VERSION'] == '1.0' + assert para1.attrs["kkn_CLASS"] == "PARAMETER" + assert para1.attrs["kkn_PARAMETER_VERSION"] == "1.0" + def test_file_exist(): - assert para1.storage_path.exists() - \ No newline at end of file + assert Path(test_result_path / "parameter.h5").exists() diff --git a/Tests/test_pipeline.py b/Tests/test_pipeline.py index 412929f..0c59eb6 100644 --- a/Tests/test_pipeline.py +++ b/Tests/test_pipeline.py @@ -1,61 +1,74 @@ -import numpy as np from pathlib import Path -import pytest -from components import * - -para1 = Parameter('para1') -para1.attrs['value'] = 1 -para1.attrs['units'] = 'cm' -para1.attrs['variable'] = '-' -para1.attrs['origin'] = 'this' -para2 = Parameter('para2') -para2.attrs['value'] = 2 -para2.attrs['units'] = 'mm' -para2.attrs['variable'] = '-' -para2.attrs['origin'] = 'this' - -model1 = Model('model1') +import numpy as np +import pytest +from pykkn.dataset import Dataset +from pykkn.instrument import Instrument +from pykkn.model import Model +from pykkn.parameter import Parameter +from pykkn.pipeline import Pipeline + +test_result_path = Path("./test_result") +if not test_result_path.exists(): + test_result_path.mkdir() + +para1 = Parameter("para1") +para1.attrs["value"] = 1 +para1.attrs["units"] = "cm" +para1.attrs["variable"] = "-" +para1.attrs["origin"] = "this" + +para2 = Parameter("para2") +para2.attrs["value"] = 2 +para2.attrs["units"] = "mm" +para2.attrs["variable"] = "-" +para2.attrs["origin"] = "this" + +model1 = Model("model1") model1.add([para1, para2]) -model2 = Model('model2') +model2 = Model("model2") model2.add([para2, para1]) -instr1 = Instrument('instr1') +instr1 = Instrument("instr1") instr1.add([model1, model2]) -instr2 = Instrument('instr2') +instr2 = Instrument("instr2") instr2.add([model2, model1]) -dataset = Dataset('dataset1') +dataset = Dataset("dataset1") dataset.data = np.double(1) -dataset.attrs['samplerate'] = 1000 -dataset.attrs['timestamp'] = '2022-06-14 12:54:11' +dataset.attrs["samplerate"] = 1000 +dataset.attrs["timestamp"] = "2022-06-14 12:54:11" -pipe1 = Pipeline('measured/capa1/raw') -pipe1.attrs['variable'] = 'voltage' -pipe1.attrs['units'] = 'volts' -pipe1.attrs['origin'] = 'this' +pipe1 = Pipeline("measured/capa1/raw") +pipe1.attrs["variable"] = "voltage" +pipe1.attrs["units"] = "volts" +pipe1.attrs["origin"] = "this" pipe1.add([instr1, instr2]) pipe1.add([dataset]) -pipe1.set_storage_path('tests/test_results/pipeline.h5') +pipe1.set_storage_path(test_result_path / "pipeline.h5") pipe1.store() -pipe1.store(format='json') +pipe1.store(format="json") + def test_name(): - assert pipe1.name == 'measured/capa1/raw' + assert pipe1.name == "measured/capa1/raw" + def test_instruments(): assert len(pipe1.instruments) == 2 assert pipe1.instruments[0] == instr1 assert pipe1.instruments[1] == instr2 + def test_dataset(): assert len(pipe1.data) == 1 assert pipe1.data[0] == dataset + def test_wrong_para_input(): with pytest.raises(AssertionError): pipe1.add(instr1) @@ -64,12 +77,13 @@ def test_wrong_para_input(): with pytest.raises(TypeError): pipe1.add([pipe1]) + def test_other_attributes(): - assert pipe1.storage_path == Path('test/test_ut_pip.h5') + assert pipe1.storage_path == str(Path(test_result_path / "pipeline.json")) assert pipe1.is_dataset is False - assert pipe1.attrs['kkn_CLASS'] == 'PIPELINE' - assert pipe1.attrs['kkn_PIPELINE_VERSION'] == '1.0' + assert pipe1.attrs["kkn_CLASS"] == "PIPELINE" + assert pipe1.attrs["kkn_PIPELINE_VERSION"] == "1.0" + def test_file_exist(): - assert pipe1.storage_path.exists() - \ No newline at end of file + assert Path(test_result_path / "pipeline.h5").exists() diff --git a/Tests/test_run.py b/Tests/test_run.py index c6a87c8..a0b2b7d 100644 --- a/Tests/test_run.py +++ b/Tests/test_run.py @@ -1,72 +1,86 @@ -import numpy as np from pathlib import Path -import pytest -from components import * - -para1 = Parameter('para1') -para1.attrs['value'] = 1 -para1.attrs['units'] = 'cm' -para1.attrs['variable'] = '-' -para1.attrs['origin'] = 'this' -para2 = Parameter('para2') -para2.attrs['value'] = 2 -para2.attrs['units'] = 'mm' -para2.attrs['variable'] = '-' -para2.attrs['origin'] = 'this' - -model1 = Model('model1') +import numpy as np +import pytest +from pykkn.dataset import Dataset +from pykkn.instrument import Instrument +from pykkn.model import Model +from pykkn.parameter import Parameter +from pykkn.pipeline import Pipeline +from pykkn.run import Run + +test_result_path = Path("./test_result") +if not test_result_path.exists(): + test_result_path.mkdir() + +para1 = Parameter("para1") +para1.attrs["value"] = 1 +para1.attrs["units"] = "cm" +para1.attrs["variable"] = "-" +para1.attrs["origin"] = "this" + +para2 = Parameter("para2") +para2.attrs["value"] = 2 +para2.attrs["units"] = "mm" +para2.attrs["variable"] = "-" +para2.attrs["origin"] = "this" + +model1 = Model("model1") model1.add([para1, para2]) -model2 = Model('model2') +model2 = Model("model2") model2.add([para2, para1]) -instr1 = Instrument('instr1') +instr1 = Instrument("instr1") instr1.add([model1, model2]) -instr2 = Instrument('instr2') +instr2 = Instrument("instr2") instr2.add([model2, model1]) -dataset = Dataset('dataset1') +dataset = Dataset("dataset1") dataset.data = np.double(1) -dataset.attrs['samplerate'] = 1000 -dataset.attrs['timestamp'] = '2022-06-14 12:54:11' +dataset.attrs["samplerate"] = 1000 +dataset.attrs["timestamp"] = "2022-06-14 12:54:11" -pipe1 = Pipeline('measured/capa1/raw') -pipe1.attrs['variable'] = 'voltage' -pipe1.attrs['units'] = 'volts' -pipe1.attrs['origin'] = 'this' +pipe1 = Pipeline("measured/capa1/raw") +pipe1.attrs["variable"] = "voltage" +pipe1.attrs["units"] = "volts" +pipe1.attrs["origin"] = "this" pipe1.add([instr1, instr2]) pipe1.add([dataset]) -pipe2 = Pipeline('derived/capa2/scaled') -pipe2.attrs['variable'] = 'length' -pipe2.attrs['units'] = 'cm' -pipe2.attrs['origin'] = 'this' +pipe2 = Pipeline("derived/capa2/scaled") +pipe2.attrs["variable"] = "length" +pipe2.attrs["units"] = "cm" +pipe2.attrs["origin"] = "this" pipe2.add([instr2, instr1]) pipe2.add([dataset]) -run = Run('run1') +run = Run("run1") run.add([para1, para2]) run.add([pipe1, pipe2]) -run.set_storage_path('tests/test_results/run.h5') +run.set_storage_path(test_result_path / "run.h5") run.store() -run.store(format='json') +run.store(format="json") + def test_name(): - assert run.name == 'run1' + assert run.name == "run1" + def test_instruments(): assert len(run.parameters) == 2 assert run.parameters[0] == para1 assert run.parameters[1] == para2 + def test_pipeline(): assert len(run.pipelines) == 2 assert run.pipelines[0] == pipe1 assert run.pipelines[1] == pipe2 + def test_wrong_para_input(): with pytest.raises(AssertionError): run.add(para1) @@ -75,12 +89,13 @@ def test_wrong_para_input(): with pytest.raises(TypeError): run.add([run]) + def test_other_attributes(): - assert run.storage_path == Path('test/test_ut_run.h5') + assert run.storage_path == str(Path(test_result_path / "run.json")) assert run.is_dataset is False - assert run.attrs['kkn_CLASS'] == 'MSMTRUN' - assert run.attrs['kkn_MSMTRUN_VERSION'] == '1.0' + assert run.attrs["kkn_CLASS"] == "MSMTRUN" + assert run.attrs["kkn_MSMTRUN_VERSION"] == "1.0" + def test_file_exist(): - assert run.storage_path.exists() - \ No newline at end of file + assert Path(test_result_path / "run.h5").exists() -- GitLab