Skip to content

Commit

Permalink
tests for chi_sq()
Browse files Browse the repository at this point in the history
  • Loading branch information
milcent committed Nov 21, 2020
1 parent b39305f commit cab17fb
Show file tree
Hide file tree
Showing 2 changed files with 160 additions and 6 deletions.
19 changes: 18 additions & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import numpy as np
import pandas as pd
from ..benford import utils as ut
from ..benford.constants import confs
from ..benford.constants import confs, rev_digs


@pytest.fixture
Expand Down Expand Up @@ -33,6 +33,11 @@ def choose_digs():
return choice([1, 2, 3, 22, -2])


@pytest.fixture
def choose_test():
return choice(["F1D","F2D","F3D","SD","L2D"])


@pytest.fixture
def choose_confidence():
return choice(list(confs.keys())[1:])
Expand Down Expand Up @@ -123,6 +128,18 @@ def gen_proportions_L2D(gen_get_digs_df):
return ut.get_proportions(gen_get_digs_df.L2D)


@pytest.fixture
def gen_proportions_random_test(choose_test, gen_get_digs_df):
dig_str = choose_test
return ut.get_proportions(gen_get_digs_df[dig_str]), rev_digs[dig_str]


@pytest.fixture
def gen_join_expect_found_diff_random_test(gen_proportions_random_test):
rand_test, rand_digs = gen_proportions_random_test
return ut.join_expect_found_diff(rand_test, rand_digs)


@pytest.fixture
def gen_join_expect_found_diff_F1D(gen_proportions_F1D):
return ut.join_expect_found_diff(gen_proportions_F1D, 1)
Expand Down
147 changes: 142 additions & 5 deletions tests/test_stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,150 @@ def test_conf_None(self, gen_join_expect_found_diff_F1D, capsys):
jefd_F1D = gen_join_expect_found_diff_F1D
chi = st.chi_sq(jefd_F1D, len(jefd_F1D) - 1, None)
out, _ = capsys.readouterr()
assert out == "\nChi-square test needs confidence other than None.\n"
assert "Chi-square test needs confidence other than None." in out
assert chi is None

def test_random_conf(self, gen_join_expect_found_diff_F1D,
choose_confidence, capsys):
def test_random_conf_F1D(self, gen_join_expect_found_diff_F1D,
choose_confidence):
jefd_F1D = gen_join_expect_found_diff_F1D
ddf = len(jefd_F1D) - 1
confidence = choose_confidence
chis = st.chi_sq(jefd_F1D, ddf, choose_confidence)
assert chis[1] == crit_chi2[ddf][confidence]
chis = st.chi_sq(jefd_F1D, ddf, choose_confidence, verbose=False)
assert chis[1] == crit_chi2[ddf][confidence]
assert chis[0] > 0
assert isinstance(chis[0], float)


def test_random_conf_F2D(self, gen_join_expect_found_diff_F2D,
choose_confidence):
jefd_F2D = gen_join_expect_found_diff_F2D
ddf = len(jefd_F2D) - 1
confidence = choose_confidence
chis = st.chi_sq(jefd_F2D, ddf, choose_confidence, verbose=False)
assert chis[1] == crit_chi2[ddf][confidence]
assert chis[0] > 0
assert isinstance(chis[0], float)

def test_random_conf_F3D(self, gen_join_expect_found_diff_F3D,
choose_confidence):
jefd_F3D = gen_join_expect_found_diff_F3D
ddf = len(jefd_F3D) - 1
confidence = choose_confidence
chis = st.chi_sq(jefd_F3D, ddf, choose_confidence, verbose=False)
assert chis[1] == crit_chi2[ddf][confidence]
assert chis[0] > 0
assert isinstance(chis[0], float)

def test_random_conf_SD(self, gen_join_expect_found_diff_SD,
choose_confidence):
jefd_SD = gen_join_expect_found_diff_SD
ddf = len(jefd_SD) - 1
confidence = choose_confidence
chis = st.chi_sq(jefd_SD, ddf, choose_confidence, verbose=False)
assert chis[1] == crit_chi2[ddf][confidence]
assert chis[0] > 0
assert isinstance(chis[0], float)

def test_random_conf_L2D(self, gen_join_expect_found_diff_L2D,
choose_confidence):
jefd_L2D = gen_join_expect_found_diff_L2D
ddf = len(jefd_L2D) - 1
confidence = choose_confidence
chis = st.chi_sq(jefd_L2D, ddf, choose_confidence, verbose=False)
assert chis[1] == crit_chi2[ddf][confidence]
assert chis[0] > 0
assert isinstance(chis[0], float)

def test_rand_test_rand_conf_verbose(self, choose_confidence,
gen_join_expect_found_diff_random_test, capsys):
r_test = gen_join_expect_found_diff_random_test
ddf = len(r_test) - 1
conf = choose_confidence
chis = st.chi_sq(r_test, ddf, conf)
out, _ = capsys.readouterr()
assert f"The Chi-square statistic is {chis[0]:.4f}." in out
assert f"Critical Chi-square for this series: {chis[1]}." in out

def test_rand_test_conf_80(self, gen_join_expect_found_diff_random_test):
r_test = gen_join_expect_found_diff_random_test
ddf = len(r_test) - 1
chis = st.chi_sq(r_test, ddf, 80, verbose=False)
assert chis[1] == crit_chi2[ddf][80]
assert chis[0] > 0
assert isinstance(chis[0], float)

def test_rand_test_conf_85(self, gen_join_expect_found_diff_random_test):
r_test = gen_join_expect_found_diff_random_test
ddf = len(r_test) - 1
chis = st.chi_sq(r_test, ddf, 85, verbose=False)
assert chis[1] == crit_chi2[ddf][85]
assert chis[0] > 0
assert isinstance(chis[0], float)

def test_rand_test_conf_90(self, gen_join_expect_found_diff_random_test):
r_test = gen_join_expect_found_diff_random_test
ddf = len(r_test) - 1
chis = st.chi_sq(r_test, ddf, 90, verbose=False)
assert chis[1] == crit_chi2[ddf][90]
assert chis[0] > 0
assert isinstance(chis[0], float)

def test_rand_test_conf_95(self, gen_join_expect_found_diff_random_test,
capsys):
r_test = gen_join_expect_found_diff_random_test
ddf = len(r_test) - 1
chis = st.chi_sq(r_test, ddf, 95, verbose=False)
out, _ = capsys.readouterr()
assert chis[1] == crit_chi2[ddf][95]
assert chis[0] > 0
assert isinstance(chis[0], float)
assert f"The Chi-square statistic is {chis[0]:.4f}." not in out
assert f"Critical Chi-square for this series: {chis[1]}." not in out

def test_rand_test_conf_99(self, gen_join_expect_found_diff_random_test):
r_test = gen_join_expect_found_diff_random_test
ddf = len(r_test) - 1
chis = st.chi_sq(r_test, ddf, 99, verbose=False)
assert chis[1] == crit_chi2[ddf][99]
assert chis[0] > 0
assert isinstance(chis[0], float)

def test_rand_test_conf_999(self, gen_join_expect_found_diff_random_test):
r_test = gen_join_expect_found_diff_random_test
ddf = len(r_test) - 1
chis = st.chi_sq(r_test, ddf, 99.9, verbose=False)
assert chis[1] == crit_chi2[ddf][99.9]
assert chis[0] > 0
assert isinstance(chis[0], float)

def test_rand_test_conf_9999(self, gen_join_expect_found_diff_random_test):
r_test = gen_join_expect_found_diff_random_test
ddf = len(r_test) - 1
chis = st.chi_sq(r_test, ddf, 99.99, verbose=False)
assert chis[1] == crit_chi2[ddf][99.99]
assert chis[0] > 0
assert isinstance(chis[0], float)

def test_rand_test_conf_99999(self, gen_join_expect_found_diff_random_test):
r_test = gen_join_expect_found_diff_random_test
ddf = len(r_test) - 1
chis = st.chi_sq(r_test, ddf, 99.999, verbose=False)
assert chis[1] == crit_chi2[ddf][99.999]
assert chis[0] > 0
assert isinstance(chis[0], float)

def test_rand_test_conf_999999(self, gen_join_expect_found_diff_random_test):
r_test = gen_join_expect_found_diff_random_test
ddf = len(r_test) - 1
chis = st.chi_sq(r_test, ddf, 99.9999, verbose=False)
assert chis[1] == crit_chi2[ddf][99.9999]
assert chis[0] > 0
assert isinstance(chis[0], float)

def test_rand_test_conf_9999999(self, gen_join_expect_found_diff_random_test):
r_test = gen_join_expect_found_diff_random_test
ddf = len(r_test) - 1
chis = st.chi_sq(r_test, ddf, 99.99999, verbose=False)
assert chis[1] == crit_chi2[ddf][99.99999]
assert chis[0] > 0
assert isinstance(chis[0], float)

0 comments on commit cab17fb

Please sign in to comment.