1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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)
|