cai
2026-06-05 9c703f14d916320bea60d5c9f3db000438fc0f91
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
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()