Spaces:
Runtime error
Runtime error
| from __future__ import absolute_import | |
| from copy import deepcopy | |
| from unittest import TestCase | |
| from Cython.Compiler.FlowControl import ( | |
| NameAssignment, StaticAssignment, Argument, NameDeletion) | |
| class FakeType(object): | |
| is_pyobject = True | |
| class FakeNode(object): | |
| pos = ('filename.pyx', 1, 2) | |
| cf_state = None | |
| type = FakeType() | |
| def infer_type(self, scope): | |
| return self.type | |
| class FakeEntry(object): | |
| type = FakeType() | |
| class TestGraph(TestCase): | |
| def test_deepcopy(self): | |
| lhs, rhs = FakeNode(), FakeNode() | |
| entry = FakeEntry() | |
| entry.pos = lhs.pos | |
| name_ass = NameAssignment(lhs, rhs, entry) | |
| ass = deepcopy(name_ass) | |
| self.assertTrue(ass.lhs) | |
| self.assertTrue(ass.rhs) | |
| self.assertTrue(ass.entry) | |
| self.assertEqual(ass.pos, name_ass.pos) | |
| self.assertFalse(ass.is_arg) | |
| self.assertFalse(ass.is_deletion) | |
| static_ass = StaticAssignment(entry) | |
| ass = deepcopy(static_ass) | |
| self.assertTrue(ass.lhs) | |
| self.assertTrue(ass.rhs) | |
| self.assertTrue(ass.entry) | |
| self.assertEqual(ass.pos, static_ass.pos) | |
| self.assertFalse(ass.is_arg) | |
| self.assertFalse(ass.is_deletion) | |
| arg_ass = Argument(lhs, rhs, entry) | |
| ass = deepcopy(arg_ass) | |
| self.assertTrue(ass.lhs) | |
| self.assertTrue(ass.rhs) | |
| self.assertTrue(ass.entry) | |
| self.assertEqual(ass.pos, arg_ass.pos) | |
| self.assertTrue(ass.is_arg) | |
| self.assertFalse(ass.is_deletion) | |
| name_del = NameDeletion(lhs, entry) | |
| ass = deepcopy(name_del) | |
| self.assertTrue(ass.lhs) | |
| self.assertTrue(ass.rhs) | |
| self.assertTrue(ass.entry) | |
| self.assertEqual(ass.pos, name_del.pos) | |
| self.assertFalse(ass.is_arg) | |
| self.assertTrue(ass.is_deletion) | |