def test_build_from_info(): """we can rebuild terms from info """ terms = [Intercept(), LinearTerm(0), SplineTerm(0), FactorTerm(0), TensorTerm(0,1)] for term in terms: assert Term.build_from_info(term.info) == term assert te(0, 1) == TensorTerm(SplineTerm(0, n_splines=10), SplineTerm(1, n_splines=10))
def test_num_coefs(mcycle_X_y, wage_X_y): """make sure this method gives correct values """ X, y = mcycle_X_y term = Intercept().compile(X) assert term.n_coefs == 1 term = LinearTerm(0).compile(X) assert term.n_coefs == 1 term = SplineTerm(0).compile(X) assert term.n_coefs == term.n_splines X, y = wage_X_y term = FactorTerm(2).compile(X) assert term.n_coefs == 5 term_a = SplineTerm(0).compile(X) term_b = SplineTerm(1).compile(X) term = TensorTerm(term_a, term_b).compile(X) assert term.n_coefs == term_a.n_coefs * term_b.n_coefs