Exemple #1
0
 def test_eval(self):
     self.assertEqual(
         Symbol('some_symbol')._eval({'some_symbol': 'value'}),
         'value')
     self.assertEqual(
         Symbol('some_symbol')._eval(
             {'some_symbol': 'value', 'other_symbol': 'irrelevant'}),
         'value')
     with self.assertRaises(KeyError):
         Symbol('some_symbol')._eval({'other_symbol': 'irrelevant'}),
Exemple #2
0
    def test_pythagoras(self):
        from math import sqrt

        X = Symbol('X')
        Y = Symbol('Y')

        expr = sym_call(sqrt, X ** 2 + Y ** 2)
        func = to_callable(expr)

        self.assertEqual(func(X=3, Y=4), 5)
Exemple #3
0
    def test_ops(self):
        expr = Symbol('some_symbol') + 1
        self.assertEqual(
            repr(expr),
            "getattr(Symbol('some_symbol'), '__add__')(*(1,), **{})")

        expr = 1 + Symbol('some_symbol')
        self.assertEqual(
            repr(expr),
            "getattr(Symbol('some_symbol'), '__radd__')(*(1,), **{})")

        expr = Symbol('some_symbol')['key']
        self.assertEqual(
            repr(expr),
            "getattr(Symbol('some_symbol'), '__getitem__')(*('key',), **{})")
Exemple #4
0
 def test_sym_call(self):
     expr = sym_call(
         'func', Symbol('some_symbol'), 'arg1', 'arg2',
         kwarg_name='kwarg value')
     self.assertEqual(
         repr(expr),
         "'func'(*(Symbol('some_symbol'), 'arg1', 'arg2'), " +
         "**{'kwarg_name': 'kwarg value'})")
Exemple #5
0
    def test_eval_with_symbolic_object(self):
        some_obj = mock.Mock()
        del some_obj._eval
        some_obj.some_attr = 'attribute value'

        expr = GetAttr(Symbol('some_symbol'), 'some_attr')

        self.assertEqual(
            expr._eval({'some_symbol': some_obj}),
            'attribute value')
Exemple #6
0
 def test_eval_if_symbolic(self):
     self.assertEqual(
         eval_if_symbolic(
             'nonsymbolic',
             {'some_symbol': 'symbol_value'}),
         'nonsymbolic')
     self.assertEqual(
         eval_if_symbolic(
             Symbol('some_symbol'),
             {'some_symbol': 'symbol_value'}),
         'symbol_value')
Exemple #7
0
    def test_eval_with_symbol_kwarg(self):
        func = mock.Mock(return_value='return value')
        del func._eval  # So it doesn't pretend to be symbolic

        expr = Call(
            func,
            ('arg1', 'arg2'),
            {'kwarg_name': Symbol('some_symbol')})

        result = expr._eval({'some_symbol': 'kwarg value'})

        func.assert_called_once_with('arg1', 'arg2', kwarg_name='kwarg value')
        self.assertEqual(result, 'return value')
Exemple #8
0
 def test_repr(self):
     self.assertEqual(repr(Symbol('some_symbol')), "Symbol('some_symbol')")
Exemple #9
0
 def test_call(self):
     expr = Symbol('some_symbol')('arg1', 'arg2', kwarg_name='kwarg value')
     self.assertEqual(
         repr(expr),
         "Symbol('some_symbol')(*('arg1', 'arg2'), " +
         "**{'kwarg_name': 'kwarg value'})")
Exemple #10
0
 def test_getattr(self):
     expr = Symbol('some_symbol').some_attr
     self.assertEqual(
         repr(expr),
         "getattr(Symbol('some_symbol'), 'some_attr')")