Skip to content

Commit 9f14629

Browse files
committed
Do check for min service factor column in check_utilization_and_minimum_service_factors
1 parent 593a43b commit 9f14629

2 files changed

Lines changed: 25 additions & 19 deletions

File tree

src/muse/readers/csv.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -931,7 +931,9 @@ def check_utilization_and_minimum_service_factors(data, filename):
931931

932932
_check_utilization_not_all_zero(data, filename)
933933
_check_utilization_in_range(data, filename)
934-
_check_minimum_service_factors_in_range(data, filename)
934+
935+
if "minimum_service_factor" in data.columns:
936+
_check_minimum_service_factors_in_range(data, filename)
935937

936938

937939
def _check_utilization_not_all_zero(data, filename):
@@ -954,11 +956,7 @@ def _check_utilization_in_range(data, filename):
954956

955957

956958
def _check_minimum_service_factors_in_range(data, filename):
957-
try:
958-
min_service_factor = data["minimum_service_factor"]
959-
except KeyError:
960-
# Minimum service factor not specified, so we don't need to check it
961-
return
959+
min_service_factor = data["minimum_service_factor"]
962960

963961
if not np.all((0 <= min_service_factor) & (min_service_factor <= 1)):
964962
raise ValueError(

tests/test_readers.py

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -474,16 +474,6 @@ def test_check_minimum_service_factors_in_range_success():
474474
_check_minimum_service_factors_in_range(df, "file.csv")
475475

476476

477-
def test_check_minimum_service_factors_in_range_column_missing():
478-
import pandas as pd
479-
from muse.readers.csv import _check_minimum_service_factors_in_range
480-
481-
# If the minimum_service_factor column is missing, the function should just return
482-
# without raising an error
483-
df = pd.DataFrame()
484-
_check_minimum_service_factors_in_range(df, "file.csv")
485-
486-
487477
@mark.parametrize(
488478
"values", chain.from_iterable(permutations((0, bad)) for bad in (-1, 2))
489479
)
@@ -497,23 +487,41 @@ def test_check_minimum_service_factors_in_range_fail(values):
497487
_check_minimum_service_factors_in_range(df, "file.csv")
498488

499489

500-
@patch("muse.readers.csv._check_minimum_service_factors_in_range")
501490
@patch("muse.readers.csv._check_utilization_in_range")
502491
@patch("muse.readers.csv._check_utilization_not_all_zero")
492+
@patch("muse.readers.csv._check_minimum_service_factors_in_range")
503493
def test_check_utilization_and_minimum_service_factors(*mocks):
504494
import pandas as pd
505495
from muse.readers.csv import check_utilization_and_minimum_service_factors
506496

507-
df = pd.DataFrame({"utilization_factor": (0, 0, 1)})
497+
df = pd.DataFrame(
498+
{"utilization_factor": (0, 0, 1), "minimum_service_factor": (0, 0, 0)}
499+
)
508500
check_utilization_and_minimum_service_factors(df, "file.csv")
509501
for mock in mocks:
510502
mock.assert_called_once_with(df, "file.csv")
511503

512504

505+
@patch("muse.readers.csv._check_utilization_in_range")
506+
@patch("muse.readers.csv._check_utilization_not_all_zero")
513507
@patch("muse.readers.csv._check_minimum_service_factors_in_range")
508+
def test_check_utilization_and_minimum_service_factors_no_min(
509+
min_service_factor_mock, *mocks
510+
):
511+
import pandas as pd
512+
from muse.readers.csv import check_utilization_and_minimum_service_factors
513+
514+
df = pd.DataFrame({"utilization_factor": (0, 0, 1)})
515+
check_utilization_and_minimum_service_factors(df, "file.csv")
516+
for mock in mocks:
517+
mock.assert_called_once_with(df, "file.csv")
518+
min_service_factor_mock.assert_not_called()
519+
520+
514521
@patch("muse.readers.csv._check_utilization_in_range")
515522
@patch("muse.readers.csv._check_utilization_not_all_zero")
516-
def test_check_utilization_and_minimum_service_factors_missing_column(*mocks):
523+
@patch("muse.readers.csv._check_minimum_service_factors_in_range")
524+
def test_check_utilization_and_minimum_service_factors_fail_missing_utilization(*mocks):
517525
import pandas as pd
518526
from muse.readers.csv import check_utilization_and_minimum_service_factors
519527

0 commit comments

Comments
 (0)