From df114fb3eddad1ec1a6e483fcbb1916aa3635559 Mon Sep 17 00:00:00 2001
From: Bjoern Ludwig <bjoern.ludwig@ptb.de>
Date: Sun, 15 Jan 2023 21:08:13 +0100
Subject: [PATCH] test(test dataset): introduce tests for idx_start and one
 missing for normalize

---
 tests/test_zema_dataset.py | 51 +++++++++++++++++++++++++++++++++++---
 1 file changed, 47 insertions(+), 4 deletions(-)

diff --git a/tests/test_zema_dataset.py b/tests/test_zema_dataset.py
index 7f9f461..2e895b5 100644
--- a/tests/test_zema_dataset.py
+++ b/tests/test_zema_dataset.py
@@ -254,7 +254,11 @@ def test_cache_path_expects_stats_to_return_path() -> None:
     assert signature(ZeMASamples._cache_path).return_annotation is Path
 
 
-def test_dataset_extract_samples_expects_parameter_n_samples() -> None:
+def test_zema_samples_expects_parameter_idx_start() -> None:
+    assert "idx_start" in signature(ZeMASamples).parameters
+
+
+def test_zema_samples_expects_parameter_n_samples() -> None:
     assert "n_samples" in signature(ZeMASamples).parameters
 
 
@@ -262,10 +266,22 @@ def test_zema_samples_expects_parameter_size_scaler() -> None:
     assert "size_scaler" in signature(ZeMASamples).parameters
 
 
-def test_dataset_extract_samples_expects_parameter_n_samples_as_int() -> None:
+def test_zema_samples_expects_parameter_normalize() -> None:
+    assert "normalize" in signature(ZeMASamples).parameters
+
+
+def test_zema_samples_expects_parameter_n_samples_as_int() -> None:
     assert signature(ZeMASamples).parameters["n_samples"].annotation is int
 
 
+def test_zema_samples_expects_parameter_idx_start_as_int() -> None:
+    assert signature(ZeMASamples).parameters["idx_start"].annotation is int
+
+
+def test_zema_samples_expects_parameter_normalize_as_bool() -> None:
+    assert signature(ZeMASamples).parameters["normalize"].annotation is bool
+
+
 def test_dataset_zema_samples_expects_parameter_size_scaler_as_int() -> None:
     assert signature(ZeMASamples).parameters["size_scaler"].annotation is int
 
@@ -274,7 +290,15 @@ def test_zema_samples_parameter_n_samples_default_is_one() -> None:
     assert signature(ZeMASamples).parameters["n_samples"].default == 1
 
 
-def test_dataset_extract_samples_parameter_size_scaler_default_is_one() -> None:
+def test_zema_samples_parameter_idx_start_default_is_zero() -> None:
+    assert signature(ZeMASamples).parameters["idx_start"].default == 0
+
+
+def test_zema_samples_parameter_normalize_default_is_false() -> None:
+    assert not signature(ZeMASamples).parameters["normalize"].default
+
+
+def test_zema_samples_parameter_size_scaler_default_is_one() -> None:
     assert signature(ZeMASamples).parameters["size_scaler"].default == 1
 
 
@@ -360,7 +384,11 @@ def test_extract_samples_returns_values_and_uncertainties_which_are_not_similar(
 
 
 @pytest.mark.webtest
-def test_zema_samples_fails_for_more_than_4766_samples() -> None:
+@given(hst.integers(min_value=1, max_value=10000))
+@settings(deadline=None)
+def test_zema_samples_fails_for_more_than_4766_samples(
+    n_samples_above_max: int,
+) -> None:
     with pytest.raises(
         ValueError,
         match=r"all the input array dimensions except for the concatenation axis must "
@@ -396,3 +424,18 @@ def test_zema_samples_normalized_std_is_smaller_or_equal(
     normalized_result = ZeMASamples(n_samples, size_scaler, True)
     not_normalized_result = ZeMASamples(n_samples, size_scaler)
     assert not_normalized_result.values.std() >= normalized_result.values.std()
+
+
+@pytest.mark.webtest
+@given(
+    small_positive_integers,
+    small_positive_integers,
+    hst.booleans(),
+    hst.integers(min_value=1, max_value=9),
+)
+@settings(deadline=None)
+def test_zema_samples_cache_path_contains_starting_from_for_larger_than_zero_startpoint(
+    n_samples: int, size_scaler: int, normalize: bool, idx_start: int
+) -> None:
+    zema_samples = ZeMASamples(n_samples, size_scaler, normalize, idx_start)
+    assert "_starting_from_" in str(zema_samples._cache_path(normalize))
-- 
GitLab