def invalid_init_input_checks( test_case: TestCase, nominal_input_name: str, nominal_input, zero_check: bool = False, ): """Tests that the test_case correctly identifies invalid inputs. Parameters ---------- test_case Object of type TestCase that should contain the relevant check functions. nominal_input_name String signifying the internal name of the input variable (needed for error messages in case the check functions fail.) nominal_input Nominal value of the input variable. zero_check Optional boolean signifying whether or not to perform a check where a zero value for the input variable is checked. """ if isinstance(test_case, Exception_Bolometry_Derivation): if not isinstance(nominal_input, Hashable): invalid_input = 1.0 test_case.init_type_error_check( **{nominal_input_name: invalid_input}) elif isinstance(nominal_input, Sequence): invalid_input = "test" # type:ignore test_case.init_type_error_check( **{nominal_input_name: invalid_input}) elif isinstance(nominal_input, get_args(LabeledArray)): # Type ignore due to mypy complaining about redefinition of invalid_input invalid_input = "test" # type:ignore test_case.init_type_error_check( **{nominal_input_name: invalid_input}) invalid_input = deepcopy(nominal_input) # type:ignore invalid_input *= -1 test_case.init_value_error_check( **{nominal_input_name: invalid_input}) invalid_input = deepcopy(nominal_input) # type:ignore invalid_input *= np.inf test_case.init_value_error_check( **{nominal_input_name: invalid_input}) invalid_input = deepcopy(nominal_input) # type:ignore invalid_input *= -np.inf test_case.init_value_error_check( **{nominal_input_name: invalid_input}) invalid_input = deepcopy(nominal_input) # type:ignore invalid_input *= np.nan test_case.init_value_error_check( **{nominal_input_name: invalid_input}) if zero_check: invalid_input = deepcopy(nominal_input) # type:ignore invalid_input *= 0 test_case.init_value_error_check( **{nominal_input_name: invalid_input}) if isinstance(nominal_input, (np.ndarray, DataArray)): invalid_input = deepcopy(nominal_input[0]) # type:ignore test_case.init_value_error_check( **{nominal_input_name: invalid_input})