@@ -4697,25 +4697,41 @@ def test_reduce_keepdims(self):
46974697 )
46984698 assert_identical (expected , actual )
46994699
4700+ @pytest .mark .parametrize ("skipna" , [True , False ])
47004701 @pytest .mark .parametrize ("q" , [0.25 , [0.50 ], [0.25 , 0.75 ]])
4701- def test_quantile (self , q ):
4702+ def test_quantile (self , q , skipna ):
47024703 ds = create_test_data (seed = 123 )
47034704
47044705 for dim in [None , "dim1" , ["dim1" ]]:
4705- ds_quantile = ds .quantile (q , dim = dim )
4706+ ds_quantile = ds .quantile (q , dim = dim , skipna = skipna )
47064707 if is_scalar (q ):
47074708 assert "quantile" not in ds_quantile .dims
47084709 else :
47094710 assert "quantile" in ds_quantile .dims
47104711
47114712 for var , dar in ds .data_vars .items ():
47124713 assert var in ds_quantile
4713- assert_identical (ds_quantile [var ], dar .quantile (q , dim = dim ))
4714+ assert_identical (
4715+ ds_quantile [var ], dar .quantile (q , dim = dim , skipna = skipna )
4716+ )
47144717 dim = ["dim1" , "dim2" ]
4715- ds_quantile = ds .quantile (q , dim = dim )
4718+ ds_quantile = ds .quantile (q , dim = dim , skipna = skipna )
47164719 assert "dim3" in ds_quantile .dims
47174720 assert all (d not in ds_quantile .dims for d in dim )
47184721
4722+ @pytest .mark .parametrize ("skipna" , [True , False ])
4723+ def test_quantile_skipna (self , skipna ):
4724+ q = 0.1
4725+ dim = "time"
4726+ ds = Dataset ({"a" : ([dim ], np .arange (0 , 11 ))})
4727+ ds = ds .where (ds >= 1 )
4728+
4729+ result = ds .quantile (q = q , dim = dim , skipna = skipna )
4730+
4731+ value = 1.9 if skipna else np .nan
4732+ expected = Dataset ({"a" : value }, coords = {"quantile" : q })
4733+ assert_identical (result , expected )
4734+
47194735 @requires_bottleneck
47204736 def test_rank (self ):
47214737 ds = create_test_data (seed = 1234 )
0 commit comments