feat: Improved typing, exception if neither step nor decimals is set

This commit is contained in:
Matthias
2025-05-09 06:34:59 +02:00
parent d0d40f4fce
commit a6d3995013
2 changed files with 6 additions and 1 deletions
+3 -1
View File
@@ -8,7 +8,7 @@ class SKDecimal(FloatDistribution):
high: float, high: float,
*, *,
step: float | None = None, step: float | None = None,
decimals: int = 3, decimals: int | None = None,
name=None, name=None,
): ):
""" """
@@ -22,6 +22,8 @@ class SKDecimal(FloatDistribution):
""" """
if decimals is not None and step is not None: if decimals is not None and step is not None:
raise ValueError("You can only set one of decimals or step") raise ValueError("You can only set one of decimals or step")
if decimals is None and step is None:
raise ValueError("You must set one of decimals or step")
# Convert decimals to step # Convert decimals to step
self.step = step or 1 / 10**decimals self.step = step or 1 / 10**decimals
self.name = name self.name = name
+3
View File
@@ -1197,6 +1197,9 @@ def test_SKDecimal():
with pytest.raises(ValueError): with pytest.raises(ValueError):
SKDecimal(1, 2, step=5, decimals=0.2) SKDecimal(1, 2, step=5, decimals=0.2)
with pytest.raises(ValueError):
SKDecimal(1, 2, step=None, decimals=None)
s = SKDecimal(1, 2, step=0.1, decimals=None) s = SKDecimal(1, 2, step=0.1, decimals=None)
assert s.step == 0.1 assert s.step == 0.1
assert s._contains(1.1) assert s._contains(1.1)