-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtest_cases.py
More file actions
105 lines (64 loc) · 2.43 KB
/
test_cases.py
File metadata and controls
105 lines (64 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import pandas as pd
import pytest
from functions import (
check_ranges,
check_unique_len,
load_data,
outlier_found,
)
# test API
def test_load_data_strips_column_names(tmp_path):
p = tmp_path / "mini.csv"
p.write_text(" Unique ID ,Data Value\n123456,10\n")
df = load_data(str(p))
assert "Unique ID" in df.columns
assert "Data Value" in df.columns
def test_check_ranges_below_min_returns_false():
df = pd.DataFrame({"Data Value": [-1, 0, 1]})
assert check_ranges(df, min_allowed=0) is False
# test case for check_unique_len
def test_check_unique_len_valid():
df = pd.DataFrame({"Unique ID": ["123456", "654321", "111111"]})
assert check_unique_len(df) is True
def test_check_unique_len_invalid_length():
df = pd.DataFrame({"Unique ID": ["123", "654321"]})
assert check_unique_len(df) is False
def test_check_unique_len_missing_column():
df = pd.DataFrame({"Other": ["123456"]})
assert check_unique_len(df) is False
# test case for outlier_found
def test_outlier_found_normal_case():
df = pd.DataFrame({"Data Value": [10, 12, 11, 13, 200]})
result = outlier_found(df)
assert isinstance(result, dict)
assert result["outlier_count"] == 1
assert result["total"] == 5
assert result["outliers_rate"] == 1 / 5
def test_outlier_missing_column():
"""finding columns not exist"""
df = pd.DataFrame({"Other": [1, 23]})
with pytest.raises(ValueError):
outlier_found(df, col="Data Value")
def test_outlier_nonnumeric():
"""find non numeric data"""
df = pd.DataFrame({"Data Value": ["bad", "good", "10"]})
with pytest.raises(ValueError):
outlier_found(df)
# test case for check_ranges
def test_check_ranges_negative_value():
df = pd.DataFrame({"Data Value": [1, -5, 10]})
assert check_ranges(df) is False
def test_check_valid_range():
"""test valid ranges"""
df = pd.DataFrame({"Data Value": [0, 1, 10]})
assert check_ranges(df) is True
def test_check_range_missing():
"""test missing column"""
df = pd.DataFrame({"Other": [0, 1, 10]})
assert check_ranges(df, col="Data Value", min_allowed=0) is False
def test_check_range_below_min_fail():
df = pd.DataFrame({"Data Value": [0, -1, 10]})
assert check_ranges(df, col="Data Value", min_allowed=0) is False
def test_check_ranges_non_numeric_returns_false():
df = pd.DataFrame({"Data Value": ["bad", "10"]})
assert check_ranges(df) is False