def test_ModelDesc_from_formula(): for input in ("y ~ x", parse_formula("y ~ x")): md = ModelDesc.from_formula(input) assert md.lhs_termlist == [ Term([EvalFactor("y")]), ] assert md.rhs_termlist == [INTERCEPT, Term([EvalFactor("x")])]
def test_ModelDesc_from_formula(): for input in ("y ~ x", parse_formula("y ~ x")): eval_env = EvalEnvironment.capture(0) md = ModelDesc.from_formula(input, eval_env) assert md.lhs_termlist == [ Term([EvalFactor("y", eval_env)]), ] assert md.rhs_termlist == [ INTERCEPT, Term([EvalFactor("x", eval_env)]) ]
def from_formula(cls, tree_or_string): """Construct a :class:`ModelDesc` from a formula string. :arg tree_or_string: A formula string. (Or an unevaluated formula parse tree, but the API for generating those isn't public yet. Shh, it can be our secret.) :returns: A new :class:`ModelDesc`. """ if isinstance(tree_or_string, ParseNode): tree = tree_or_string else: tree = parse_formula(tree_or_string) value = Evaluator().eval(tree, require_evalexpr=False) assert isinstance(value, cls) return value
def from_formula(cls, tree_or_string, factor_eval_env): """Construct a :class:`ModelDesc` from a formula string. :arg tree_or_string: A formula string. (Or an unevaluated formula parse tree, but the API for generating those isn't public yet. Shh, it can be our secret.) :arg factor_eval_env: A :class:`EvalEnvironment`, to be used for constructing :class:`EvalFactor` objects while parsing this formula. :returns: A new :class:`ModelDesc`. """ if isinstance(tree_or_string, ParseNode): tree = tree_or_string else: tree = parse_formula(tree_or_string) factor_eval_env.add_outer_namespace(_builtins_dict) value = Evaluator(factor_eval_env).eval(tree, require_evalexpr=False) assert isinstance(value, cls) return value
def test_ModelDesc_from_formula(): for input in ("y ~ x", parse_formula("y ~ x")): eval_env = EvalEnvironment.capture(0) md = ModelDesc.from_formula(input, eval_env) assert md.lhs_termlist == [Term([EvalFactor("y")]),] assert md.rhs_termlist == [INTERCEPT, Term([EvalFactor("x")])]
def test_ModelDesc_from_formula(): for input in ("y ~ x", parse_formula("y ~ x")): md = ModelDesc.from_formula(input) assert md.lhs_termlist == [Term([EvalFactor("y")]),] assert md.rhs_termlist == [INTERCEPT, Term([EvalFactor("x")])]