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()
|