def METHOD_NAME(self):
    """Test function chi2_mcnemar."""
    # Setup
    np.random.seed(42)
    mean, cov = [0.5, 0.5], [(1, 0.6), (0.6, 1)]
    x, y = np.random.multivariate_normal(mean, cov, 30).T
    data = pd.DataFrame({"x": x, "y": y})
    mask_class_1 = data > 0.5
    data[mask_class_1] = 1
    data[~mask_class_1] = 0
    # Testing validations
    def expect_assertion_error(*params):
        with pytest.raises(AssertionError):
            pg.chi2_mcnemar(*params)
    expect_assertion_error(1, "x", "y")  # Not a pd.DataFrame
    expect_assertion_error(data, x, "y")  # Not a string
    expect_assertion_error(data, "x", y)  # Not a string
    expect_assertion_error(data, "x", "z")  # Not a column of data
    # Testing happy-day
    pg.chi2_mcnemar(data, "x", "y")
    # Testing NaN incompatibility
    data.iloc[0, 0] = np.nan
    with pytest.raises(ValueError):
        pg.chi2_mcnemar(data, "x", "y")
    # Testing invalid dichotomous value
    data.iloc[0, 0] = 3
    with pytest.raises(ValueError):
        pg.chi2_mcnemar(data, "x", "y")
    # Testing error when b == 0 and c == 0
    data = pd.DataFrame({"x": [0, 0, 0, 1, 1, 1], "y": [0, 0, 0, 1, 1, 1]})
    with pytest.raises(ValueError):
        pg.chi2_mcnemar(data, "x", "y")
    # Comparing results with R
    # 2 x 2 contingency table (dof = 1)
    # >>> tbl = table(df$treatment_X, df$treatment_Y)
    # >>> mcnemar.test(tbl, correct = TRUE)
    _, stats = pg.chi2_mcnemar(df_mcnemar, "treatment_X", "treatment_Y")
    assert round(stats.at["mcnemar", "chi2"], 3) == 20.021
    assert stats.at["mcnemar", "dof"] == 1
    assert np.isclose(stats.at["mcnemar", "p-approx"], 7.66e-06)
    # Results are compared to the exact2x2 R package
    # >>> exact2x2(tbl, paired = TRUE, midp = FALSE)
    assert np.isclose(stats.at["mcnemar", "p-exact"], 3.305e-06)
    # midp gives slightly different results
    # assert np.allclose(stats.at['mcnemar', 'p-mid'], 3.305e-06)