def test_modes_with_nans(): # GH39007 values = np.array([True, pd.NA, np.nan], dtype=np.object_) # pd.Na and np.nan will have the same representative: np.nan # thus we have 2 nans and 1 True modes = ht.mode(values, False) assert modes.size == 1 assert np.isnan(modes[0])
def test_mode(self, dtype, writable): if dtype in (np.int8, np.uint8): N = 53 else: N = 11111 values = np.repeat(np.arange(N).astype(dtype), 5) values[0] = 42 values.flags.writeable = writable result = ht.mode(values, False) assert result == 42
def test_mode(self, dtype): values = np.array([42, np.nan, np.nan, np.nan], dtype=dtype) assert ht.mode(values, True) == 42 assert np.isnan(ht.mode(values, False))
def test_modes_with_nans(): # GH42688, nans aren't mangled nulls = [pd.NA, np.nan, pd.NaT, None] values = np.array([True] + nulls * 2, dtype=np.object_) modes = ht.mode(values, False) assert modes.size == len(nulls)
def test_mode_stable(self, dtype, writable): values = np.array([2, 1, 5, 22, 3, -1, 8]).astype(dtype) values.flags.writeable = writable keys = ht.mode(values, False) tm.assert_numpy_array_equal(keys, values)