Init Commit: Moved bproto to seperate repo
This commit is contained in:
73
test/compiler/test_deep_copy.py
Normal file
73
test/compiler/test_deep_copy.py
Normal file
@@ -0,0 +1,73 @@
|
||||
from nameHandling.base import ComponentName, NameStyleBproto
|
||||
from nameHandling.style.pythonNameStyle import NameStylePython
|
||||
from protocol_components.enumeration import FactoryEnumeration
|
||||
from copy import deepcopy
|
||||
|
||||
|
||||
def test_deepcopy_component_name():
|
||||
name = ComponentName(["This", "Is", "Some", "text"], NameStylePython, source_string="ThisIsSomeText")
|
||||
|
||||
new_name = deepcopy(name)
|
||||
|
||||
name.name_parts = ["Some", "Other", "Stuff"]
|
||||
name.source_string = "SomeOtherStuff"
|
||||
name.source_style = NameStyleBproto
|
||||
|
||||
# Verify Values did not change
|
||||
assert name.name_parts != new_name.name_parts
|
||||
assert name.source_string != new_name.source_string
|
||||
assert name.source_style != new_name.source_style
|
||||
|
||||
|
||||
def test_deepcopy_enum():
|
||||
old_enum_factory = FactoryEnumeration()
|
||||
old_enum_factory.add_value("Value1", 1)
|
||||
old_enum_factory.add_value("Value2", 2)
|
||||
old_enum_factory.add_value("Value3", 3)
|
||||
old_enum = old_enum_factory.assemble("OldEnum")
|
||||
|
||||
new_enum = deepcopy(old_enum)
|
||||
|
||||
# Check ids
|
||||
assert id(new_enum) != id(old_enum)
|
||||
assert id(new_enum.name) != id(old_enum.name)
|
||||
|
||||
assert id(old_enum.values) != id(new_enum.values)
|
||||
|
||||
old_keys = list(old_enum.values.keys())
|
||||
new_keys = list(new_enum.values.keys())
|
||||
assert id(old_keys[0]) != id(new_keys[0])
|
||||
assert id(old_keys[1]) != id(new_keys[1])
|
||||
assert id(old_keys[2]) != id(new_keys[2])
|
||||
|
||||
|
||||
def test_deepcopy_component_names_memo():
|
||||
name1 = NameStyleBproto.fromStr("Value1")
|
||||
name2 = NameStyleBproto.fromStr("Value2")
|
||||
|
||||
assert id(name1) != id(name2)
|
||||
|
||||
name1_copy = deepcopy(name1)
|
||||
assert isinstance(name1_copy, ComponentName)
|
||||
|
||||
assert name1_copy == name1
|
||||
assert id(name1_copy) != id(name1)
|
||||
|
||||
name1_copy2 = deepcopy(name1, {
|
||||
id(name1): name1_copy,
|
||||
id(name1_copy): name1_copy
|
||||
})
|
||||
|
||||
name1_copy3 = deepcopy(name1_copy, {
|
||||
id(name1): name1_copy,
|
||||
id(name1_copy): name1_copy
|
||||
})
|
||||
|
||||
assert isinstance(name1_copy2, ComponentName)
|
||||
assert isinstance(name1_copy3, ComponentName)
|
||||
|
||||
assert id(name1_copy) == id(name1_copy2)
|
||||
assert id(name1_copy2) != id(name1)
|
||||
|
||||
assert id(name1_copy) == id(name1_copy3)
|
||||
assert id(name1_copy3) != id(name1)
|
||||
Reference in New Issue
Block a user