def test_minimize_large_uint_arrays(): """Strategy with uint dtype and largely sized shape minimizes to a good example.""" smallest = minimal( xps.arrays(xp.uint8, 100), lambda x: xp.any(x) and not xp.all(x), timeout_after=60, ) assert xp.all(xp.logical_or(smallest == 0, smallest == 1)) idx = xp.nonzero(smallest)[0] assert idx.size in (1, smallest.size - 1)
def test_array_element_rewriting(data, start, size): """Unique strategy generates arrays with expected elements.""" x = data.draw( xps.arrays( dtype=xp.int64, shape=size, elements=st.integers(start, start + size - 1), unique=True, )) x_set_expect = xp.linspace(start, start + size - 1, size, dtype=xp.int64) x_set = xp.sort(xp.unique_values(x)) assert xp.all(x_set == x_set_expect)
def test_excluded_min_in_float_arrays(dtype, low, data): """Strategy with elements strategy excluding min does not generate arrays with elements less or equal to said min.""" strat = xps.arrays( dtype=dtype, shape=(), elements={ "min_value": low, "max_value": low + 1, "exclude_min": True, }, ) x = data.draw(strat, label="array") assert xp.all(x > low)
def test_floats_can_be_constrained_excluding_endpoints(x): """Strategy with float dtype and specified elements strategy range (exclusive) generates arrays with elements inside said range.""" assert xp.all(x > 0) assert xp.all(x < 1)
def test_floats_can_be_constrained(x): """Strategy with float dtype and specified elements strategy range (inclusive) generates arrays with elements inside said range.""" assert xp.all(x >= 0) assert xp.all(x <= 1)
def test_minimizes_to_fill(): """Strategy with single fill value minimizes to arrays only containing said fill value.""" smallest = minimal(xps.arrays(xp.float32, 10, fill=st.just(3.0))) assert xp.all(smallest == 3.0)
def test_minimizes_numeric_arrays(dtype): """Strategies with numeric dtypes minimize to zero-filled arrays.""" smallest = minimal(xps.arrays(dtype, (2, 2))) assert xp.all(smallest == 0)
def test_generate_arrays_from_unsigned_ints(x): """Generate arrays from unsigned integer dtype.""" assert xp.all(x >= 0) assert_array_namespace(x)