Skip to content

Commit

Permalink
moved zero division solve to _set_N_, and tests
Browse files Browse the repository at this point in the history
  • Loading branch information
milcent committed Nov 20, 2020
1 parent e0ad640 commit 1ffacc6
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 10 deletions.
2 changes: 0 additions & 2 deletions benford/stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ def Z_score(frame, N):
Series of computed Z scores, or zero if N==0, so there is no
DivisionByZero
"""
if N == 0:
return 0
return (frame.AbsDif - (1 / (2 * N))) / sqrt(
(frame.Expected * (1. - frame.Expected)) / N)

Expand Down
4 changes: 2 additions & 2 deletions benford/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ def _set_N_(len_df, limit_N):
""""""
# Assigning to N the superior limit or the lenght of the series
if limit_N is None or limit_N > len_df:
return len_df
return max(1, len_df)
# Check on limit_N being a positive integer
else:
if limit_N < 0 or not isinstance(limit_N, int):
raise ValueError("limit_N must be None or a positive integer.")
else:
return limit_N
return max(1, limit_N)


def get_mantissas(arr):
Expand Down
4 changes: 4 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ def gen_N():
return np.random.randint(0, 25000)


@pytest.fixture
def gen_N_lower(gen_N):
return np.random.randint(0, gen_N)

@pytest.fixture
def gen_array(gen_N):
num = gen_N
Expand Down
13 changes: 7 additions & 6 deletions tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,12 @@



def test_set_N_Limit_None():
assert ut._set_N_(100, None) == 100
def test_set_N_Limit_None(gen_N):
assert ut._set_N_(gen_N, None) == gen_N


def test_set_N_Limit_greater():
assert ut._set_N_(100, 99) == 99
assert ut._set_N_(1000, 750) == 750
def test_set_N_Limit_greater(gen_N, gen_N_lower):
assert ut._set_N_(gen_N, gen_N_lower) == gen_N_lower


def test_set_N_negative():
Expand All @@ -23,12 +22,14 @@ def test_set_N_float():
with pytest.raises(ValueError) as context:
ut._set_N_(127.8, -100)

def test_set_N_zero(gen_N):
assert ut._set_N_(0, None) == 1
assert ut._set_N_(0, gen_N) == 1

def test_get_mantissas_less_than_1(gen_array):
assert sum(ut.get_mantissas(gen_array) > 1) == 0



def test_get_mantissas_less_than_0(gen_array):
assert sum(ut.get_mantissas(gen_array) < 0) == 0

Expand Down

0 comments on commit 1ffacc6

Please sign in to comment.