MCPcopy Create free account
hub / github.com/dask/dask / test_cumulative

Function test_cumulative

dask/array/tests/test_array_core.py:3828–3883  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

3826
3827
3828def test_cumulative():
3829 rng = np.random.default_rng(0)
3830 x = da.arange(20, chunks=5)
3831 assert_eq(x.cumsum(axis=0), np.arange(20).cumsum())
3832 assert_eq(x.cumprod(axis=0), np.arange(20).cumprod())
3833
3834 assert_eq(da.nancumsum(x, axis=0), np.nancumsum(np.arange(20)))
3835 assert_eq(da.nancumprod(x, axis=0), np.nancumprod(np.arange(20)))
3836
3837 a = rng.random(20)
3838 a[rng.random(a.shape) < 0.5] = np.nan
3839 x = da.from_array(a, chunks=5)
3840 assert_eq(da.nancumsum(x, axis=0), np.nancumsum(a))
3841 assert_eq(da.nancumprod(x, axis=0), np.nancumprod(a))
3842
3843 a = rng.random((20, 24))
3844 x = da.from_array(a, chunks=(6, 5))
3845 assert_eq(x.cumsum(axis=0), a.cumsum(axis=0))
3846 assert_eq(x.cumsum(axis=1), a.cumsum(axis=1))
3847 assert_eq(x.cumprod(axis=0), a.cumprod(axis=0))
3848 assert_eq(x.cumprod(axis=1), a.cumprod(axis=1))
3849
3850 assert_eq(da.nancumsum(x, axis=0), np.nancumsum(a, axis=0))
3851 assert_eq(da.nancumsum(x, axis=1), np.nancumsum(a, axis=1))
3852 assert_eq(da.nancumprod(x, axis=0), np.nancumprod(a, axis=0))
3853 assert_eq(da.nancumprod(x, axis=1), np.nancumprod(a, axis=1))
3854
3855 a = rng.random((20, 24))
3856 a[rng.random(a.shape) < 0.5] = np.nan
3857 x = da.from_array(a, chunks=(6, 5))
3858 assert_eq(da.nancumsum(x, axis=0), np.nancumsum(a, axis=0))
3859 assert_eq(da.nancumsum(x, axis=1), np.nancumsum(a, axis=1))
3860 assert_eq(da.nancumprod(x, axis=0), np.nancumprod(a, axis=0))
3861 assert_eq(da.nancumprod(x, axis=1), np.nancumprod(a, axis=1))
3862
3863 a = rng.random((20, 24, 13))
3864 x = da.from_array(a, chunks=(6, 5, 4))
3865 for axis in [0, 1, 2, -1, -2, -3]:
3866 assert_eq(x.cumsum(axis=axis), a.cumsum(axis=axis))
3867 assert_eq(x.cumprod(axis=axis), a.cumprod(axis=axis))
3868
3869 assert_eq(da.nancumsum(x, axis=axis), np.nancumsum(a, axis=axis))
3870 assert_eq(da.nancumprod(x, axis=axis), np.nancumprod(a, axis=axis))
3871
3872 a = rng.random((20, 24, 13))
3873 a[rng.random(a.shape) < 0.5] = np.nan
3874 x = da.from_array(a, chunks=(6, 5, 4))
3875 for axis in [0, 1, 2, -1, -2, -3]:
3876 assert_eq(da.nancumsum(x, axis=axis), np.nancumsum(a, axis=axis))
3877 assert_eq(da.nancumprod(x, axis=axis), np.nancumprod(a, axis=axis))
3878
3879 with pytest.raises(ValueError):
3880 x.cumsum(axis=3)
3881
3882 with pytest.raises(ValueError):
3883 x.cumsum(axis=-4)
3884
3885

Callers

nothing calls this directly

Calls 5

assert_eqFunction · 0.90
arangeMethod · 0.45
cumsumMethod · 0.45
cumprodMethod · 0.45
randomMethod · 0.45

Tested by

no test coverage detected