def test_get_end_time(self, tmp_path): filename = 'user_parameters.yml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta.get_end_time() == pytest.approx(np.finfo('d').max)
def test_set_model_output__out_dir_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'changed_dir_name') f.close() delta = BmiDelta() delta.initialize(p) assert 'changed_dir_name' in delta._delta.out_dir
def test_get_input_item_count(self, tmp_path): filename = 'user_parameters.yml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta.get_input_item_count() == len(delta._input_var_names)
def test_get_time_units(self, tmp_path): filename = 'user_parameters.yml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta.get_time_units() == 's'
def test_set_coeff__iterations_smoothing_algorithm_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'coeff__iterations_smoothing_algorithm', 1) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.Nsmooth == 1
def test_set_model_output__opt_time_interval_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model_output__opt_time_interval', 5) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.save_dt == 5
def test_set_model_output__opt_velocity_grids_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model_output__opt_velocity_grids', True) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.save_velocity_grids is True
def test_set_sediment__influx_concentration_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'sediment__influx_concentration', 0.001) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.C0_percent == 0.001
def test_set_sediment__bedload_fraction_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'sediment__bedload_fraction', 0.2) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.f_bedload == 0.2
def test_set_sediment__number_parcels_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'sediment__number_parcels', 6000) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.Np_sed == 6000
def test_set_sea_water_surface__mean_elevation_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'sea_water_surface__mean_elevation', 3) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.H_SL == 3
def test_set_coeff__depth_dependence__mud_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'coeff__depth_dependence__mud', 1) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.coeff_theta_mud == 1
def test_set_coeff__sedimentation_lag_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'coeff__sedimentation_lag', 10) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.sed_lag == 10
def test_set_land_surface__width_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'land_surface__width', 100) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.L0_meters == 100
def test_set_model__max_iteration_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model__max_iteration', 3) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.itermax == 3
def test_get_var_itemsize(self, tmp_path): filename = 'user_parameters.yml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta.get_var_itemsize( 'sea_water_surface__elevation') == delta._delta.stage.itemsize
def test_set_basin__maximum_subsidence_rate_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'basin__maximum_subsidence_rate', 0.00033) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.subsidence_rate == 0.00033
def test_set_model_grid__cell_size_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model_grid__cell_size', 50) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.dx == 50
def test_set_basin__subsidence_start_timestep_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'basin__subsidence_start_timestep', 10) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.start_subsidence == 10
def test_set_coeff__topographic_diffusion_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'coeff__topographic_diffusion', 10) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.alpha == 10
def test_set_coeff__velocity_erosion_sand_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'coeff__velocity_erosion_sand', 10) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.coeff_U_ero_sand == 10
def test_set_model__random_seed(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model__random_seed', 42) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.seed == 42
def test_set_channel__flow_depth_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'channel__flow_depth', 6) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.h0 == 6
def test_default_vals(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.h0 == 5.0 assert delta._delta.u0 == 1.0 assert delta._delta.S0 == 0.00015
def test_set_coeff__under_relaxation__water_surface_config(self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'coeff__under_relaxation__water_surface', 0.3) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.omega_sfc == 0.3
def test_get_var_grid(self, tmp_path): filename = 'user_parameters.yml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert type(delta.get_var_grid('sea_water_surface__elevation')) in [ np.int, np.float ]
def test_set_coeff__under_relaxation__water_flow_config(self, tmp_path): """xFail due to upstream (pyDeltaRCM) bug. """ filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'coeff__under_relaxation__water_flow', 0.8) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.omega_flow == 0.8
def test_get_value_at_indices(self, tmp_path): filename = 'user_parameters.yml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) _inds = np.array([10, 8, 19, 23, 45, 16, 0, -1, -2]) assert np.all( delta.get_value_at_indices('sea_water_surface__elevation', _inds) == delta._delta.stage.take(_inds))
def test_set_coeff__non_linear_exp_sed_flux_flow_velocity_config( self, tmp_path): filename = 'user_parameters.yaml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file( f, 'coeff__non_linear_exp_sed_flux_flow_velocity', 1) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta._delta.beta == 1
def test_get_value_ptr(self, tmp_path): filename = 'user_parameters.yml' p, f = create_temporary_file(tmp_path, filename) write_parameter_to_file(f, 'model_output__out_dir', tmp_path / 'out_dir') f.close() delta = BmiDelta() delta.initialize(p) assert delta.get_value_ptr( 'sea_water_surface__elevation' ) is delta._values['sea_water_surface__elevation'] assert delta.get_value_ptr( 'sea_water__depth') is delta._values['sea_water__depth'] assert delta.get_value_ptr( 'sea_bottom_surface__elevation' ) is delta._values['sea_bottom_surface__elevation'] assert delta.get_value_ptr( 'sea_water_surface__elevation') is delta._delta.stage assert delta.get_value_ptr('sea_water__depth') is delta._delta.depth assert delta.get_value_ptr( 'sea_bottom_surface__elevation') is delta._delta.eta