|
5 | 5 | from bio2zarr import core
|
6 | 6 |
|
7 | 7 |
|
| 8 | +class TestMinIntDtype: |
| 9 | + @pytest.mark.parametrize( |
| 10 | + ("min_value", "max_value", "dtype"), |
| 11 | + [ |
| 12 | + (0, 1, "i1"), |
| 13 | + (0, 0, "i1"), |
| 14 | + (0, 127, "i1"), |
| 15 | + (127, 128, "i2"), |
| 16 | + (-127, 0, "i1"), |
| 17 | + (-127, -126, "i1"), |
| 18 | + (0, 2**15 - 1, "i2"), |
| 19 | + (-(2**15), 2**15 - 1, "i2"), |
| 20 | + (0, 2**15, "i4"), |
| 21 | + (-(2**15), 2**15, "i4"), |
| 22 | + (0, 2**31 - 1, "i4"), |
| 23 | + (-(2**31), 2**31 - 1, "i4"), |
| 24 | + (2**31 - 1, 2**31 - 1, "i4"), |
| 25 | + (0, 2**31, "i8"), |
| 26 | + (0, 2**32, "i8"), |
| 27 | + ], |
| 28 | + ) |
| 29 | + def test_values(self, min_value, max_value, dtype): |
| 30 | + assert core.min_int_dtype(min_value, max_value) == dtype |
| 31 | + |
| 32 | + @pytest.mark.parametrize( |
| 33 | + ("min_value", "max_value"), |
| 34 | + [ |
| 35 | + (0, 2**63), |
| 36 | + (-(2**63) - 1, 0), |
| 37 | + (0, 2**65), |
| 38 | + ], |
| 39 | + ) |
| 40 | + def test_overflow(self, min_value, max_value): |
| 41 | + with pytest.raises(OverflowError, match="Integer cannot"): |
| 42 | + core.min_int_dtype(min_value, max_value) |
| 43 | + |
| 44 | + @pytest.mark.parametrize( |
| 45 | + ("min_value", "max_value"), |
| 46 | + [ |
| 47 | + (1, 0), |
| 48 | + (-1, -2), |
| 49 | + (2**31, 2**31 - 1), |
| 50 | + ], |
| 51 | + ) |
| 52 | + def test_bad_min_max(self, min_value, max_value): |
| 53 | + with pytest.raises(ValueError, match="must be <="): |
| 54 | + core.min_int_dtype(min_value, max_value) |
| 55 | + |
| 56 | + |
8 | 57 | class TestParallelWorkManager:
|
9 | 58 | @pytest.mark.parametrize("total", [1, 10, 2**63])
|
10 | 59 | @pytest.mark.parametrize("workers", [0, 1])
|
|
0 commit comments