def test_solve_water_and_sediment_timestep_itermax_10(self, tmp_path): # create a delta with different itermax p = utilities.yaml_from_dict(tmp_path, 'input.yaml', {'itermax': 10}) delta = DeltaModel(input_file=p) # mock top-level methods, verify call was made to each delta.log_info = mock.MagicMock() delta.init_water_iteration = mock.MagicMock() delta.run_water_iteration = mock.MagicMock() delta.compute_free_surface = mock.MagicMock() delta.finalize_water_iteration = mock.MagicMock() delta.route_sediment = mock.MagicMock() # run the timestep delta.solve_water_and_sediment_timestep() # assert that methods are called assert delta.init_water_iteration.called is True assert delta.run_water_iteration.called is True assert delta.compute_free_surface.called is True assert delta.finalize_water_iteration.called is True _calls = [mock.call(i) for i in range(10)] delta.finalize_water_iteration.assert_has_calls(_calls, any_order=False) assert delta.finalize_water_iteration.call_count == 10 assert (delta.route_sediment.called is True) assert (delta._is_finalized is False)
def test_fields_updated(self, tmp_path): # create a delta with default settings p = utilities.yaml_from_dict(tmp_path, 'input.yaml') delta = DeltaModel(input_file=p) delta.log_info = mock.MagicMock() # run the method delta.init_water_iteration() # assertions assert np.all(delta.qxn == 0) assert np.all(delta.qyn == 0) assert np.all(delta.qwn == 0) assert np.all(delta.free_surf_flag == 1) # all parcels begin as valid assert np.all(delta.free_surf_walk_inds == 0) assert np.all(delta.sfc_visit == 0) assert np.all(delta.sfc_sum == 0) assert delta.log_info.call_count == 1
def test_route_water(self, tmp_path): # create a delta with default settings p = utilities.yaml_from_dict(tmp_path, 'input.yaml') _delta = DeltaModel(input_file=p) # mock top-level methods _delta.log_info = mock.MagicMock() _delta.init_water_iteration = mock.MagicMock() _delta.run_water_iteration = mock.MagicMock() _delta.compute_free_surface = mock.MagicMock() _delta.finalize_water_iteration = mock.MagicMock() # run the method _delta.route_water() # methods called assert (_delta.log_info.called is True) assert (_delta.init_water_iteration.call_count == _delta._itermax) assert (_delta.run_water_iteration.call_count == _delta._itermax) assert (_delta.compute_free_surface.call_count == _delta._itermax) assert (_delta.finalize_water_iteration.call_count == _delta._itermax)