35 lines
892 B
Python
35 lines
892 B
Python
#!/usr/bin/env python3
|
|
"""verify_summary.py — Assert csv_summary.py output matches expected values."""
|
|
import sys
|
|
import json
|
|
|
|
expected_rows = 5
|
|
expected_columns = ["name", "age", "salary", "active"]
|
|
expected_age = {
|
|
"count": 5,
|
|
"sum": 150.0,
|
|
"mean": 30.0,
|
|
"median": 30.0,
|
|
"min": 25.0,
|
|
"max": 35.0,
|
|
}
|
|
expected_salary = {
|
|
"count": 5,
|
|
"sum": 265000.0,
|
|
"mean": 53000.0,
|
|
"median": 50000.0,
|
|
"min": 45000.0,
|
|
"max": 70000.0,
|
|
}
|
|
|
|
data = json.load(sys.stdin)
|
|
assert data["rows"] == expected_rows, f"rows: {data['rows']}"
|
|
assert data["columns"] == expected_columns, f"columns: {data['columns']}"
|
|
age = data["numeric"]["age"]
|
|
for k, v in expected_age.items():
|
|
assert age[k] == v, f"age.{k}: {age[k]} != {v}"
|
|
sal = data["numeric"]["salary"]
|
|
for k, v in expected_salary.items():
|
|
assert sal[k] == v, f"salary.{k}: {sal[k]} != {v}"
|
|
print("VERIFIED")
|