from pathlib import Path import tempfile import unittest from csv_profile_experiment import build_profile, write_outputs class CsvProfileExperimentTest(unittest.TestCase): def test_profile_and_outputs(self) -> None: with tempfile.TemporaryDirectory() as tmp: root = Path(tmp) input_path = root / "input.csv" input_path.write_text( "id,group,value,event_date\n" "OBJ001,A,10,2026-06-01\n" "OBJ002,B,11,2026-06-02\n", encoding="utf-8", ) profile = build_profile(input_path) self.assertEqual(profile["row_count"], 2) self.assertEqual(profile["duplicate_id_count"], 0) self.assertTrue(profile["quality_pass"]) self.assertEqual(profile["group_counts"], {"A": 1, "B": 1}) output_dir = root / "out" write_outputs(profile, output_dir) self.assertTrue((output_dir / "summary.json").exists()) self.assertTrue((output_dir / "column_quality.csv").exists()) self.assertTrue((output_dir / "readout.md").exists()) if __name__ == "__main__": unittest.main()