aboutsummaryrefslogtreecommitdiff
path: root/tests/qc
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2022-11-16 04:16:01 +0300
committerFrederick Muriuki Muriithi2022-11-16 04:16:01 +0300
commitd511e44b1a2b0e70236831926d86a10d589e9235 (patch)
tree7e5ca3dbe0eb18c3dd2cb19b4fbbb1278cce9be3 /tests/qc
parent838049cedefc5209ff9666624b2b24eccb120fb8 (diff)
downloadgn-uploader-d511e44b1a2b0e70236831926d86a10d589e9235.tar.gz
qc: Allow whole numbers or numbers where the decimals are all zeroes
Diffstat (limited to 'tests/qc')
-rw-r--r--tests/qc/test_cells.py6
-rw-r--r--tests/qc/test_cells_average.py17
-rw-r--r--tests/qc/test_cells_standard_error.py20
3 files changed, 40 insertions, 3 deletions
diff --git a/tests/qc/test_cells.py b/tests/qc/test_cells.py
index 5ff5813..1c6c3f6 100644
--- a/tests/qc/test_cells.py
+++ b/tests/qc/test_cells.py
@@ -10,7 +10,7 @@ from quality_control.average import invalid_value as avg_invalid_value
from quality_control.standard_error import invalid_value as se_invalid_value
@given(num_str=st.from_regex(
- r"^(?!(([0-9]+\.([0-9]{3}|[0-9]{6,}))|0+\.?0*)).*", fullmatch=True))
+ r"^(?!(([0-9]+\.([0-9]{3}|[0-9]{6,}))|[0-9]+\.?0*)).*", fullmatch=True))
def test_cell_value_errors_with_invalid_inputs2(num_str):
"""
GIVEN: `num_str` is an arbitrary string that is an invalid input,
@@ -30,7 +30,7 @@ def test_cell_value_errors_with_invalid_inputs2(num_str):
@given(num_str=st.from_regex(
r"^[0-9]+\.([0-9]{1,2}|[0-9]{4,}$)", fullmatch=True).filter(
- lambda param: not re.match(r"0\.0+", param)))
+ lambda param: not re.match(r"^[0-9]+\.0+$", param)))
def test_cell_average_value_errors_if_not_three_decimal_places2(num_str):
"""
GIVEN: `num_str` is a string representing a number with less than or more
@@ -57,7 +57,7 @@ def test_cell_average_value_pass_if_three_decimal_places(num_str):
assert avg_invalid_value(line, col, num_str) is None
@given(num_str=st.from_regex(r"^[0-9]+\.([0-9]{0,5}$)", fullmatch=True).filter(
- lambda param: not re.match(r"0\.0+", param)))
+ lambda param: not re.match(r"^[0-9]+\.?0*$", param)))
def test_cell_standard_error_value_errors_if_less_than_six_decimal_places2(num_str):
"""
GIVEN: `num_str` is a string representing a number with less than six
diff --git a/tests/qc/test_cells_average.py b/tests/qc/test_cells_average.py
new file mode 100644
index 0000000..c2b382a
--- /dev/null
+++ b/tests/qc/test_cells_average.py
@@ -0,0 +1,17 @@
+import re
+from random import randint
+from hypothesis import given
+from hypothesis import strategies as st
+
+from quality_control.average import invalid_value as avg_invalid_value
+
+@given(num_str=st.from_regex(r"^[0-9]+$", fullmatch=True))
+def test_cell_average_value_pass_if_no_decimal_places(num_str):
+ """
+ GIVEN: `num_str` is a string representing a number with no decimal places,
+ e.g. 2, 39, 8420
+ WHEN: `num_str` is provided as an argument to `avg_invalid_value` function,
+ THEN: `avg_invalid_value` returns `None`
+ """
+ line, col = randint(0, 100), randint(0, 20)
+ assert avg_invalid_value(line, col, num_str) is None
diff --git a/tests/qc/test_cells_standard_error.py b/tests/qc/test_cells_standard_error.py
new file mode 100644
index 0000000..aa25aa8
--- /dev/null
+++ b/tests/qc/test_cells_standard_error.py
@@ -0,0 +1,20 @@
+import re
+from random import randint
+
+
+from hypothesis import given
+from hypothesis import strategies as st
+
+from quality_control.standard_error import invalid_value
+
+@given(num_str=st.from_regex(r"^[0-9]+\.?0*", fullmatch=True))
+def test_cell_standard_error_value_errors_if_less_than_six_decimal_places2(num_str):
+ """
+ GIVEN: `num_str` is a string representing a whole number (e.g 5, 33, 5453
+ etc) or a number with all zeroes for the decimals (e.g 0.0, 19.00000,
+ 45842.00 etc)
+ WHEN: `num_str` is provided as an argument to `se_invalid_value` function,
+ THEN: `se_invalid_value` returns a `None`.
+ """
+ line, col = randint(0, 100), randint(0, 20)
+ assert invalid_value(line, col, num_str) is None