Skip to content

Commit

Permalink
Added tests
Browse files Browse the repository at this point in the history
  • Loading branch information
dsliwka committed Feb 1, 2025
1 parent 7da437b commit 4d47b18
Showing 1 changed file with 81 additions and 1 deletion.
82 changes: 81 additions & 1 deletion tests/test_others.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@
import polars as pl

from pyfixest.estimation.estimation import feols, fepois
from pyfixest.report.utils import rename_categoricals, rename_event_study_coefs
from pyfixest.report.utils import (
rename_categoricals,
rename_event_study_coefs,
set_first_cat,
)
from pyfixest.utils.utils import capture_context, get_data, ssc


Expand Down Expand Up @@ -144,6 +148,24 @@ def test_rename_categoricals():
"variable1[T.value2]": "variable1::value2",
}

# Test with labels
coefnames = ["C(variable1)[T.value1]", "variable2[T.value2]"]
labels = {"variable1": "var1", "variable2": "var2"}
renamed = rename_categoricals(coefnames, labels=labels)
assert renamed == {
"C(variable1)[T.value1]": "var1::value1",
"variable2[T.value2]": "var2::value2",
}

# Test with custom template
coefnames = ["C(variable1)[T.value1]", "variable2[T.value2]"]
template = "{variable}--{level}"
renamed = rename_categoricals(coefnames, template=template)
assert renamed == {
"C(variable1)[T.value1]": "variable1--value1",
"variable2[T.value2]": "variable2--value2",
}


def test_rename_event_study_coefs():
coefnames = [
Expand All @@ -160,6 +182,64 @@ def test_rename_event_study_coefs():
}


def test_set_first_cat(self):
# Create a sample DataFrame
df = pd.DataFrame(
{
"job": pd.Categorical(
["Admin", "Blue collar", "White collar", "Admin", "Blue collar"]
),
"gender": pd.Categorical(["Male", "Female", "Female", "Male", "Female"]),
}
)

# Define the variable-value dictionary
var_value_dict = {"job": "Admin", "gender": "Female"}

# Call the function
result_df = set_first_cat(df, var_value_dict)

# Check the results
self.assertEqual(result_df["job"].cat.categories[0], "Admin")
self.assertEqual(result_df["gender"].cat.categories[0], "Female")

# Test with a non-categorical column
df = pd.DataFrame(
{
"job": pd.Categorical(
["Admin", "Blue collar", "White collar", "Admin", "Blue collar"]
),
"age": [25, 30, 35, 40, 45],
}
)

var_value_dict = {"job": "Admin", "age": 30}

with self.assertRaises(AssertionError):
set_first_cat(df, var_value_dict)

# Test with a column not in the DataFrame
var_value_dict = {"job": "Admin", "department": "HR"}

with self.assertRaises(AssertionError):
set_first_cat(df, var_value_dict)

# Test with a value not in the categories
df = pd.DataFrame(
{
"job": pd.Categorical(
["Admin", "Blue collar", "White collar", "Admin", "Blue collar"]
),
"gender": pd.Categorical(["Male", "Female", "Female", "Male", "Female"]),
}
)

var_value_dict = {"job": "Manager", "gender": "Female"}

with self.assertRaises(AssertionError):
set_first_cat(df, var_value_dict)


def _foo():
"Simulate a callable for testing context capture behavior."
...
Expand Down

0 comments on commit 4d47b18

Please sign in to comment.