import datetime as dt from ucml import cleaning as cl def test_powertrain_rules(): assert cl.powertrain("Hybride rechargeable", None, None, None) == "PHEV" assert cl.powertrain("Hybride", None, None, None) == "HEV" assert cl.powertrain("Électrique", None, None, None) == "BEV" assert cl.powertrain("Essence", None, None, None) == "ICE" assert cl.powertrain("Diesel", None, None, None) == "Diesel" assert cl.powertrain("", "", "Model 3 2022", "Tesla") == "BEV" assert cl.powertrain("", "", "Civic 2019", "Honda") == "unknown" def test_body_segment(): assert cl.body_segment("VUS") == "SUV" assert cl.body_segment("Sport Utility") == "SUV" assert cl.body_segment("Camionnette") == "Pickup" assert cl.body_segment("Berline") == "Sedan" assert cl.body_segment("N/D") is None assert cl.body_segment("") is None def test_vehicle_age(): t = dt.datetime(2026, 10, 1, tzinfo=dt.timezone.utc).timestamp() assert abs(cl.vehicle_age_years(t, 2026) - 1.0) < 0.01 assert cl.vehicle_age_years(t, 2027) == 0.0 def test_source_class(): assert cl.source_class("autotrader") == "sampled_portal" assert cl.source_class("otogo") == "full_portal" assert cl.source_class("kijiji") == "private_marketplace" assert cl.source_class("someDealer") == "direct_dealer"