Skip to content

Commit

Permalink
ENH: Don't validate given number count value in random seeds file (#21)
Browse files Browse the repository at this point in the history
  • Loading branch information
joargr authored Jan 28, 2025
1 parent f1ebcc9 commit 02c1cdf
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 15 deletions.
24 changes: 15 additions & 9 deletions src/runrms/config/fm_rms_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,11 @@ def _pre_experiment_validation(

@staticmethod
def _validate_seed_source(
lines: list[str], filename: Path, is_multi: bool, iens_max: int | None = None
lines: list[str],
filename: Path,
is_multi: bool,
iens_max: int | None = None,
validate_given_number_count: bool = False,
) -> None:
file_desc = "Multi seed file" if is_multi else "Single seed file"
file_desc += f" {filename.absolute()}"
Expand All @@ -223,21 +227,23 @@ def _validate_seed_source(
)
return

number_count = int(lines[0])
given_number_count = int(lines[0])
numbers = lines[1:]
if number_count != len(numbers):
actual_number_count = len(numbers)
if validate_given_number_count and given_number_count != actual_number_count:
raise ValueError(
f"{file_desc} has an incorrect number count value in line 1, "
+ f"expected {len(numbers)} but found {number_count}. {format_desc}"
f"expected {actual_number_count} but found {given_number_count}. "
f"{format_desc}"
)
if number_count == 0:
if actual_number_count == 0:
raise ValueError(f"{file_desc} has no seed values. {format_desc}")
if len(numbers) != len(set(numbers)):
if actual_number_count != len(set(numbers)):
raise ValueError(
f"{file_desc} contains non-unique seed values. {format_desc}"
)
if iens_max is not None and number_count <= iens_max:
if iens_max is not None and actual_number_count <= iens_max:
raise ValueError(
f"{file_desc} has too few seed values ({number_count}) "
+ f"for the needed realization number ({iens_max + 1})"
f"{file_desc} has too few seed values ({actual_number_count}) "
f"for the needed realization number ({iens_max + 1})"
)
6 changes: 0 additions & 6 deletions tests/test_fm_rms_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,12 +114,6 @@ def test_single_seed_invalid(fm_executor_env, contents, expected_error):
[
([""], 0, r"Multi seed file \S+ is empty"),
(["1", "text"], 0, r"Multi seed file \S+ contains non-number values"),
(
["2", "1000"],
0,
r"Multi seed file \S+ has an incorrect number count value "
+ "in line 1, expected 1 but found 2",
),
(["0"], 0, r"Multi seed file \S+ has no seed values"),
(
["2", "1000", "1000"],
Expand Down

0 comments on commit 02c1cdf

Please sign in to comment.