def test_parse_extra_op(): extra_operators = [Operator("|", 2, 250)] _do_parse_test(_parser_tests, extra_operators=extra_operators) _do_parse_test(_extra_op_parser_tests, extra_operators=extra_operators) test_parse_errors(extra_operators=extra_operators)
def test_LinearConstraint_combine(): comb = LinearConstraint.combine([LinearConstraint(["a", "b"], [1, 0]), LinearConstraint(["a", "b"], [0, 1], [1])]) assert comb.variable_names == ["a", "b"] from numpy.testing.utils import assert_equal assert_equal(comb.coefs, [[1, 0], [0, 1]]) assert_equal(comb.constants, [[0], [1]]) from nose.tools import assert_raises assert_raises(ValueError, LinearConstraint.combine, []) assert_raises(ValueError, LinearConstraint.combine, [LinearConstraint(["a"], [1]), LinearConstraint(["b"], [1])]) _ops = [ Operator(",", 2, -100), Operator("=", 2, 0), Operator("+", 1, 100), Operator("-", 1, 100), Operator("+", 2, 100), Operator("-", 2, 100), Operator("*", 2, 200), Operator("/", 2, 200), ] _atomic = ["NUMBER", "VARIABLE"] def _token_maker(type, string):
def _value_type(self): return _BOOL def __repr__(self): return "<%s (%s %r)>" % (self.__class__.__name__, self._sql_op, self._children) ######################################## # # A string-based query language # ######################################## _punct_ops = [ Operator(".", 2, 200), Operator("==", 2, 100), Operator("!=", 2, 100), Operator("<", 2, 100), Operator(">", 2, 100), Operator("<=", 2, 100), Operator(">=", 2, 100), ] _text_ops = [ Operator("not", 1, 0), Operator("has", 1, 0), Operator("and", 2, 0), Operator("or", 2, 0), ] _ops = _punct_ops + _text_ops
(Token.RPAREN, Origin(code, 23, 24), None), ("+", Origin(code, 25, 26), None), ("-", Origin(code, 27, 28), None), ("ONE", Origin(code, 28, 29), "1"), ("+", Origin(code, 30, 31), None), ("ZERO", Origin(code, 32, 33), "0"), ("+", Origin(code, 34, 35), None), ("NUMBER", Origin(code, 36, 38), "10"), ] for got, expected in zip(tokens, expecteds): assert isinstance(got, Token) assert got.type == expected[0] assert got.origin == expected[1] assert got.extra == expected[2] _unary_tilde = Operator("~", 1, -100) _default_ops = [ _unary_tilde, Operator("~", 2, -100), Operator("+", 2, 100), Operator("-", 2, 100), Operator("*", 2, 200), Operator("/", 2, 200), Operator(":", 2, 300), Operator("**", 2, 500), Operator("+", 1, 100), Operator("-", 1, 100), ]