Esempio n. 1
0
    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)