Spaces:
Sleeping
Sleeping
| """Tests for Pydantic models and enum definitions.""" | |
| from __future__ import annotations | |
| from data_cleaning_env.models import ActionType, CleaningAction, Observation | |
| class TestActionType: | |
| def test_has_16_members(self) -> None: | |
| assert len(ActionType) == 16 | |
| def test_all_expected_actions_present(self) -> None: | |
| expected = { | |
| "fill_missing", | |
| "drop_duplicates", | |
| "fix_type", | |
| "normalize", | |
| "drop_outliers", | |
| "fix_schema_violation", | |
| "done", | |
| "rename_column", | |
| "cast_datetime", | |
| "deduplicate_fuzzy", | |
| "split_column", | |
| "merge_columns", | |
| "fix_format_regex", | |
| "standardize_categories", | |
| "undo", | |
| "profile_column", | |
| } | |
| actual = {a.value for a in ActionType} | |
| assert actual == expected | |
| class TestCleaningAction: | |
| def test_fill_missing_action(self) -> None: | |
| action = CleaningAction( | |
| action_type=ActionType.fill_missing, | |
| column="age", | |
| strategy="median", | |
| ) | |
| assert action.action_type == ActionType.fill_missing | |
| assert action.column == "age" | |
| def test_done_action_minimal(self) -> None: | |
| action = CleaningAction(action_type=ActionType.done) | |
| assert action.action_type == ActionType.done | |
| assert action.column is None | |
| class TestObservation: | |
| def test_required_fields(self) -> None: | |
| fields = set(Observation.model_fields.keys()) | |
| required = { | |
| "task", | |
| "step", | |
| "max_steps", | |
| "columns", | |
| "column_issues", | |
| "column_stats", | |
| "reward", | |
| "done", | |
| "sample_rows", | |
| "action_history", | |
| "budget_remaining", | |
| "profile_result", | |
| } | |
| assert required.issubset(fields) | |