test_xr_accessor.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:xarray-simlab 作者: benbovy 项目源码 文件源码
def test_set_input_vars(self, model):
        ds = xr.Dataset()

        with pytest.raises(KeyError) as excinfo:
            ds.xsimlab._set_input_vars(model, 'invalid_process', var=1)
        assert "no process named" in str(excinfo.value)

        with pytest.raises(ValueError) as excinfo:
            ds.xsimlab._set_input_vars(model, 'some_process', some_param=0,
                                       invalid_var=1)
        assert "not valid input variables" in str(excinfo.value)

        ds.xsimlab._set_input_vars(model, 'quantity',
                                   quantity=('x', np.zeros(10)))
        expected = xr.DataArray(data=np.zeros(10), dims='x')
        assert "quantity__quantity" in ds
        xr.testing.assert_equal(ds['quantity__quantity'], expected)

        # test time and parameter dimensions
        ds.xsimlab._set_input_vars(model, model.some_process, some_param=[1, 2])
        expected = xr.DataArray(data=[1, 2], dims='some_process__some_param',
                                coords={'some_process__some_param': [1, 2]})
        xr.testing.assert_equal(ds['some_process__some_param'], expected)
        del ds['some_process__some_param']

        ds['clock'] = ('clock', [0, 1], {self._master_clock_key: 1})
        ds.xsimlab._set_input_vars(model, 'some_process',
                                   some_param=('clock', [1, 2]))
        expected = xr.DataArray(data=[1, 2], dims='clock',
                                coords={'clock': [0, 1]})
        xr.testing.assert_equal(ds['some_process__some_param'], expected)

        # test optional
        ds.xsimlab._set_input_vars(model, 'grid')
        expected = xr.DataArray(data=5)
        xr.testing.assert_equal(ds['grid__x_size'], expected)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号