def test_validity_ceil(nelem): # Data data = np.random.random(nelem) * 100 mask = utils.random_bitmask(nelem) bitmask = utils.expand_bits_to_bytes(mask)[:nelem] sr = Series.from_masked_array(data, mask) # Result with pytest.warns( FutureWarning, match="Series.ceil and DataFrame.ceil are deprecated" ): res = sr.ceil() na_value = -100000 got = res.fillna(na_value).to_numpy() res_mask = np.asarray(bitmask, dtype=np.bool_)[: data.size] expect = np.ceil(data) expect[~res_mask] = na_value # Check print("expect") print(expect) print("got") print(got) np.testing.assert_array_equal(expect, got)
def test_to_dense_array(): data = np.random.random(8) mask = np.asarray([0b11010110], dtype=np.byte) sr = Series.from_masked_array(data=data, mask=mask, null_count=3) assert sr.has_nulls assert sr.null_count != len(sr) filled = sr.to_array(fillna="pandas") dense = sr.to_array() assert dense.size < filled.size assert filled.size == len(sr)
def codes(self): from cudf import Series data = self._parent.data if self._parent.has_null_mask: mask = self._parent.mask null_count = self._parent.null_count return Series.from_masked_array( data=data.mem, mask=mask.mem, null_count=null_count ) else: return Series(data, name=self._parent.name)
def test_sum_masked(nelem): dtype = np.float64 data = gen_rand(dtype, nelem) mask = utils.random_bitmask(nelem) bitmask = utils.expand_bits_to_bytes(mask)[:nelem] null_count = utils.count_zero(bitmask) sr = Series.from_masked_array(data, mask, null_count) got = sr.sum() res_mask = np.asarray(bitmask, dtype=np.bool_)[: data.size] expect = data[res_mask].sum() significant = 4 if dtype == np.float32 else 6 np.testing.assert_approx_equal(expect, got, significant=significant)
def test_validity_ceil(nelem): # Data data = np.random.random(nelem) * 100 mask = utils.random_bitmask(nelem) bitmask = utils.expand_bits_to_bytes(mask)[:nelem] sr = Series.from_masked_array(data, mask) # Result res = sr.ceil() na_value = -100000 got = res.fillna(na_value).to_array() res_mask = np.asarray(bitmask, dtype=np.bool_)[:data.size] expect = np.ceil(data) expect[~res_mask] = na_value # Check print("expect") print(expect) print("got") print(got) np.testing.assert_array_equal(expect, got)
def gen_rand_series(dtype, size, **kwargs): values = gen_rand(dtype, size, **kwargs) if kwargs.get("has_nulls", False): return Series.from_masked_array(values, random_bitmask(size)) return Series(values)