(da_func, darr, np_func, narr, use_dtype=True, split_every=True)
| 145 | |
| 146 | |
| 147 | def reduction_2d_test(da_func, darr, np_func, narr, use_dtype=True, split_every=True): |
| 148 | assert_eq(da_func(darr), np_func(narr)) |
| 149 | assert_eq(da_func(darr, keepdims=True), np_func(narr, keepdims=True)) |
| 150 | assert_eq(da_func(darr, axis=()), np_func(narr, axis=())) |
| 151 | assert_eq(da_func(darr, axis=0), np_func(narr, axis=0)) |
| 152 | assert_eq(da_func(darr, axis=1), np_func(narr, axis=1)) |
| 153 | assert_eq(da_func(darr, axis=-1), np_func(narr, axis=-1)) |
| 154 | assert_eq(da_func(darr, axis=-2), np_func(narr, axis=-2)) |
| 155 | assert_eq( |
| 156 | da_func(darr, axis=1, keepdims=True), np_func(narr, axis=1, keepdims=True) |
| 157 | ) |
| 158 | assert_eq( |
| 159 | da_func(darr, axis=(), keepdims=True), np_func(narr, axis=(), keepdims=True) |
| 160 | ) |
| 161 | assert_eq(da_func(darr, axis=(1, 0)), np_func(narr, axis=(1, 0))) |
| 162 | |
| 163 | assert same_keys(da_func(darr, axis=()), da_func(darr, axis=())) |
| 164 | assert same_keys(da_func(darr, axis=1), da_func(darr, axis=1)) |
| 165 | assert same_keys(da_func(darr, axis=(1, 0)), da_func(darr, axis=(1, 0))) |
| 166 | |
| 167 | if use_dtype: |
| 168 | with pytest.warns(ComplexWarning) if np.iscomplexobj(narr) else does_not_warn(): |
| 169 | assert_eq(da_func(darr, dtype="f8"), np_func(narr, dtype="f8")) |
| 170 | assert_eq(da_func(darr, dtype="i8"), np_func(narr, dtype="i8")) |
| 171 | |
| 172 | if split_every: |
| 173 | a1 = da_func(darr, split_every=4) |
| 174 | a2 = da_func(darr, split_every={0: 2, 1: 2}) |
| 175 | assert same_keys(a1, a2) |
| 176 | assert_eq(a1, np_func(narr)) |
| 177 | assert_eq(a2, np_func(narr)) |
| 178 | assert_eq( |
| 179 | da_func(darr, keepdims=True, split_every=4), |
| 180 | np_func(narr, keepdims=True), |
| 181 | ) |
| 182 | assert_eq(da_func(darr, axis=(), split_every=2), np_func(narr, axis=())) |
| 183 | assert_eq(da_func(darr, axis=0, split_every=2), np_func(narr, axis=0)) |
| 184 | assert_eq( |
| 185 | da_func(darr, axis=(), keepdims=True, split_every=2), |
| 186 | np_func(narr, axis=(), keepdims=True), |
| 187 | ) |
| 188 | assert_eq( |
| 189 | da_func(darr, axis=0, keepdims=True, split_every=2), |
| 190 | np_func(narr, axis=0, keepdims=True), |
| 191 | ) |
| 192 | assert_eq(da_func(darr, axis=1, split_every=2), np_func(narr, axis=1)) |
| 193 | assert_eq( |
| 194 | da_func(darr, axis=1, keepdims=True, split_every=2), |
| 195 | np_func(narr, axis=1, keepdims=True), |
| 196 | ) |
| 197 | |
| 198 | |
| 199 | def test_reduction_errors(): |
no test coverage detected