def test_shape_validation2(): m = utils.load_model('PhenoGrass')() uneven_data = predictor_vars.copy() # Drop a single timestep of evapotranspiration data uneven_data['evap'] = uneven_data['evap'][:-1] with pytest.raises(ValueError): m.fit(GCC, uneven_data, optimizer_params=quick_testing_params)
def test_shape_validation1(): m = utils.load_model('PhenoGrass')() uneven_data = predictor_vars.copy() # Drop a single site of mean avg precip data uneven_data['MAP'] = uneven_data['MAP'][:-1] with pytest.raises(ValueError): m.fit(GCC, uneven_data, optimizer_params=quick_testing_params)
def test_shape_validation3(): m = utils.load_model('PhenoGrass')() # Drop a single site of gcc data with pytest.raises(ValueError): m.fit(GCC[:, :-1], predictor_vars, optimizer_params=quick_testing_params)
def test_predictor_validation1(): # Raise error when not all predictors are passed m = utils.load_model('PhenoGrass')() data_with_missing_var = predictor_vars.copy() _ = data_with_missing_var.pop('precip') with pytest.raises(ValueError): m.fit(GCC, data_with_missing_var, optimizer_params=quick_testing_params)
def test_predictor_validation2(): # Raise error when unknown predictors are pass # CholerPR does not need everything m = utils.load_model('CholerPR1')() with pytest.raises(ValueError): m.fit(GCC, predictor_vars, optimizer_params=quick_testing_params)
] GCC, predictor_vars = utils.load_test_data() quick_testing_params = { 'maxiter': 3, 'popsize': 2, 'mutation': (0.5, 1), 'recombination': 0.25, 'disp': False } # Setup a list of test cases where each one = (model_name, fitted_model object) fitted_models = [] for name in core_model_names: m = utils.load_model(name)() models.validation.validate_model(m) this_model_data = { k: predictor_vars[k] for k in m._required_predictors.keys() } m.fit(GCC, this_model_data, optimizer_params=quick_testing_params) fitted_models.append(m) model_test_cases = list(zip(core_model_names, fitted_models)) ####################################################################### @pytest.mark.parametrize('model_name, fitted_model', model_test_cases) def test_state_variables_match1(model_name, fitted_model):