def test_variance_no_side_effect(transition: Transition): df, w = data(60) transition.fit(df, w) # very intrusive test. touches internals of m. not very nice. X_orig_id = id(transition.X) transition.mean_cv() # this has to be called here assert id(transition.X) == X_orig_id
def test_mean_coefficient_of_variation_sample_not_full_rank( transition: Transition): """ This is a test created after I encountered this kind of bug """ n = 13 df = pd.DataFrame({"a": np.ones(n) * 2, "b": np.ones(n)}) w = np.ones(len(df)) / len(df) transition.fit(df, w) transition.mean_cv()
def test_variance_estimate(transition: Transition): var_list = [] for n in [20, 250]: df, w = data(n) transition.fit(df, w) var = transition.mean_cv() var_list.append(var) assert var_list[0] >= var_list[1]
def test_variance_estimate_higher_n_than_sample(transition: Transition): n = 100 df, w = data(n) transition.fit(df, w) var_list = [] for n_test in [n, n*4, n*10]: var = transition.mean_cv(n_test) var_list.append(var) for lower, upper in zip(var_list[:-1], var_list[1:]): assert lower >= upper
def test_variance_estimate_higher_n_than_sample(transition: Transition): n = 100 df, w = data(n) transition.fit(df, w) var_list = [] for n_test in [n, n * 4, n * 10]: var = transition.mean_cv(n_test) var_list.append(var) for lower, upper in zip(var_list[:-1], var_list[1:]): # add a little buffer to overcome slight random fluctuations assert lower + 1e-2 >= upper