SPB Git
1.4 KB · 28 lines python
1import numpy as np, pytest2from traite import cas134@pytest.fixture(scope="module")5def r(): return cas1.tout()67def test_selection_identique_ch16(r):8    assert list(r["selection"]["comparables"]["id_vente"]) == ["G0574", "G0404", "G0468", "G0477", "G0575"]910def test_hedonique_recupere_les_lois(r):11    c = r["modele"]["coef"]12    assert r["modele"]["r2"] > 0.8513    assert abs(c.loc["ln_S", "coef"] - 0.55) < 0.06 and abs(c.loc["ln_T", "coef"] - 0.10) < 0.0514    assert abs(c.loc["qualite", "coef"] - 0.06) < 0.02 and abs(c.loc["garage", "coef"] - 0.035) < 0.0215    assert 0.002 < r["modele"]["croissance_mensuelle"] < 0.006   # ≈ 4,4 %/an composé → 0,36 %/mois16    assert abs(c.loc["sect_Aylmer", "coef"] - np.log(530000 / 475000)) < 0.041718def test_ajustements_et_prediction(r):19    a = r["ajustements"]; s = r["sujet"]20    assert len(a) == 5 and (a["ajust_brut_pct"] < 0.5).all()21    # prix ajustés plus resserrés que les prix bruts22    assert a["prix_ajuste"].std() < a["prix_vente"].std()23    p = r["prediction_hedonique"]; ip = r["intervalle"]24    assert ip["bas"] < p < ip["haut"] and 400_000 < p < 700_00025    # cohérence : moyenne des prix ajustés proche de la prédiction hédonique (même modèle)26    # les cinq comparables ont des résidus négatifs (−8,5 % en moyenne) : écart documenté, repris au ch. 2027    assert abs(a["prix_ajuste"].mean() / p - 1) < 0.1228
Files · 2810dd35d6a409b1204ef5b5f81d45a00614cc69
Menu

Theme