def test_compare_starmodels(props=props): m1 = StarModel(mist, **props) m2 = BasicStarModel(mist, **props) # Ensure priors are identical for k in ["mass", "feh", "age", "distance", "AV", "eep"]: m2.set_prior(**{k: m1._priors[k]}) pars = [300, 9.8, 0.01, 100, 0.1] assert np.isclose(m1.lnlike(pars), m2.lnlike(pars)) assert np.isclose(m1.lnprior(pars), m2.lnprior(pars)) assert np.isclose(m1.lnpost(pars), m2.lnpost(pars)) m1_bin = StarModel(mist, **props, N=2) m2_bin = BasicStarModel(mist, **props, N=2) # Ensure priors are identical for k in ["mass", "feh", "age", "distance", "AV", "eep"]: m2_bin.set_prior(**{k: m1_bin._priors[k]}) pars = [300, 280, 9.8, 0.01, 100, 0.1] assert np.isclose(m1_bin.lnlike(pars), m2_bin.lnlike(pars)) assert np.isclose(m1_bin.lnprior(pars), m2_bin.lnprior(pars)) assert np.isclose(m1_bin.lnpost(pars), m2_bin.lnpost(pars)) m1_trip = StarModel(mist, **props, N=3) m2_trip = BasicStarModel(mist, **props, N=3) # Ensure priors are identical for k in ["mass", "feh", "age", "distance", "AV", "eep"]: m2_trip.set_prior(**{k: m1_trip._priors[k]}) pars = [300, 280, 260.0, 9.8, 0.01, 100, 0.1] assert np.isclose(m1_trip.lnlike(pars), m2_trip.lnlike(pars)) assert np.isclose(m1_trip.lnprior(pars), m2_trip.lnprior(pars)) assert np.isclose(m1_trip.lnpost(pars), m2_trip.lnpost(pars))