Skip to content

Commit 8f7512b

Browse files
edit functools example
1 parent 65d8345 commit 8f7512b

File tree

4 files changed

+1194
-519
lines changed

4 files changed

+1194
-519
lines changed

data_science_tools/pandera_hypothesis/test1.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,13 @@ def processing_fn(df):
1010
def test_processing_fn():
1111
# Create test data
1212
df = pd.DataFrame({"val1": [1, 1, -1, -2, 2], "val2": [1, 2, -2, -1, 2]})
13+
1314
# Get result
1415
result = processing_fn(df)
16+
1517
# Create expected output
1618
expected = df.copy()
1719
expected["val3"] = [1, 0.5, 0.5, 2, 1]
20+
1821
# Test
1922
assert_frame_equal(result, expected, check_dtype=False)
Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import pandas as pd
2+
import pytest
3+
from pandas.testing import assert_frame_equal
24
import pandera as pa
35

4-
out_schema = pa.DataFrameSchema(
6+
expected = pa.DataFrameSchema(
57
{
68
"val1": pa.Column(int, pa.Check.in_range(-2, 3)),
79
"val2": pa.Column(int, pa.Check.in_range(-2, 3)),
@@ -10,12 +12,20 @@
1012
)
1113

1214

13-
@pa.check_output(out_schema)
15+
@pa.check_output(expected)
1416
def processing_fn(df):
1517
processed = df.assign(val3=df.val1 / df.val2)
1618
return processed
1719

1820

19-
if __name__ == "__main__":
20-
df = pd.DataFrame({"val1": [1, 1, -1, -2, 2], "val2": [1, 1, -1, -2, 2]})
21-
processing_fn(df)
21+
val1 = [[1, 1, -1, -2, 2], [1, 1, -1, -2, 2]]
22+
val2 = [[1, 2, -2, -1, 2], [1, 1, 1, 1, 1]]
23+
24+
25+
@pytest.mark.parametrize("val1,val2", list(zip(val1, val2)))
26+
def test_processing_fn(val1, val2):
27+
# Create test data
28+
df = pd.DataFrame({"val1": val1, "val2": val2})
29+
30+
# Get result
31+
result = processing_fn(df)
Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
1-
import hypothesis
1+
import pandas as pd
2+
import pytest
23
import pandera as pa
4+
import hypothesis
35

46
schema = pa.DataFrameSchema(
57
{
68
"val1": pa.Column(int, pa.Check.in_range(-2, 3)),
79
"val2": pa.Column(int, pa.Check.in_range(-2, 3)),
810
}
9-
)
11+
)
1012

11-
out_schema = schema.add_columns(
13+
expected = pa.DataFrameSchema(
1214
{
15+
"val1": pa.Column(int, pa.Check.in_range(-2, 3)),
16+
"val2": pa.Column(int, pa.Check.in_range(-2, 3)),
1317
"val3": pa.Column(float, pa.Check.in_range(-2, 3)),
14-
},
18+
}
1519
)
1620

17-
18-
@pa.check_output(out_schema)
21+
@pa.check_output(expected)
1922
def processing_fn(df):
2023
processed = df.assign(val3=df.val1 / df.val2)
2124
return processed
2225

23-
2426
@hypothesis.given(schema.strategy(size=5))
25-
def test_processing_fn(dataframe):
26-
processing_fn(dataframe)
27+
def test_processing_fn(df):
28+
# Get result
29+
result = processing_fn(df)

0 commit comments

Comments
 (0)