Example #1
0
    def test_unpack_binops(self):
        def fn(a, b):
            _hm_generated_2 = a + b
            _hm_generated_1 = a / _hm_generated_2
            _hm_generated_0 = _hm_generated_1 * b
            return _hm_generated_0

        expected = get_ast(fn)

        def fn(a, b):
            return a / (a + b) * b

        result = UnpackBinOps().visit(get_ast(fn))
        self.assertEqual(ast.dump(expected), ast.dump(result))
    def test_unpack_binops(self):
        def fn(a, b):
            _hm_generated_2 = a + b
            _hm_generated_1 = a / _hm_generated_2
            _hm_generated_0 = _hm_generated_1 * b
            return _hm_generated_0

        expected = get_ast(fn)

        def fn(a, b):
            return a / (a + b) * b

        result = UnpackBinOps().visit(get_ast(fn))
        self.assertEqual(ast.dump(expected), ast.dump(result))
Example #3
0
    def test_convert_arrayops(self):
        def fn(a, b):
            _hm_generated_2 = ArrayAdd(a, b)
            _hm_generated_1 = ArrayDiv(a, _hm_generated_2)
            _hm_generated_0 = ArrayMul(_hm_generated_1, b)
            return _hm_generated_0

        expected = get_ast(fn)

        def fn(a, b):
            return a / (a + b) * b

        symbol_table = {'a': self.a, 'b': self.b}
        symbol_table.update(globals())

        unpacked = UnpackBinOps().visit(get_ast(fn))
        result = ReplaceArrayOps(symbol_table).visit(unpacked)
        self.assertEqual(ast.dump(expected), ast.dump(result))
    def test_convert_arrayops(self):
        def fn(a, b):
            _hm_generated_2 = ArrayAdd(a, b)
            _hm_generated_1 = ArrayDiv(a, _hm_generated_2)
            _hm_generated_0 = ArrayMul(_hm_generated_1, b)
            return _hm_generated_0

        expected = get_ast(fn)

        def fn(a, b):
            return a / (a + b) * b

        symbol_table = {
            'a': self.a,
            'b': self.b
        }
        symbol_table.update(globals())

        unpacked = UnpackBinOps().visit(get_ast(fn))
        result = ReplaceArrayOps(symbol_table).visit(unpacked)
        self.assertEqual(ast.dump(expected), ast.dump(result))