Spaces:
Build error
Build 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) | |