Init Commit: Moved bproto to seperate repo

This commit is contained in:
AlexanderHD27
2025-04-14 14:43:03 +02:00
commit 45bfc724fc
125 changed files with 10822 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
import sys
sys.path.append('src/')
from nameHandling.base import ComponentName, NameStyleBproto
def test_component_name():
assert ComponentName(["test"]) != 1234
assert ComponentName(["test"]) == ComponentName(["test"])
assert ComponentName(["test"]) != ComponentName(["test", "test"])
assert hash(ComponentName(["test"])) == hash(ComponentName(["test"]))
assert hash(ComponentName(["test"])) != hash(ComponentName(["test", "test"]))
assert repr(ComponentName(["test"])) == "ComponentName(Test)"
assert repr(ComponentName(["test", "test"])) == "ComponentName(Test-Test)"
def test_ComponentNameStyleBproto():
assert NameStyleBproto.fromStr("test") == ComponentName(["test"])
assert NameStyleBproto.fromStr("ThisIsATest") == ComponentName(["this", "is", "a", "test"])
assert NameStyleBproto.fromStr("thisIsATest") == ComponentName(["this", "is", "a", "test"])
assert NameStyleBproto.fromStr("this-is-a-test") == ComponentName(["this", "is", "a", "test"])
assert NameStyleBproto.fromStr("this-Is-A-test") == ComponentName(["this", "is", "a", "test"])
assert NameStyleBproto.fromStr("this_is_a_test") == ComponentName(["this", "is", "a", "test"])
assert NameStyleBproto.fromStr("this_Is_a_Test") == ComponentName(["this", "is", "a", "test"])
assert NameStyleBproto.fromStr("this-Is_ATest") == ComponentName(["this", "is", "a", "test"])
assert NameStyleBproto.fromStr("ThisIs-A_test") == ComponentName(["this", "is", "a", "test"])
def test_ComponentNameStyleBproto_context_enum():
assert NameStyleBproto.fromStr("test", "enum") == ComponentName(["test"])
assert NameStyleBproto.fromStr("ThisIsATest", "enum") == ComponentName(["thisisatest"])
assert NameStyleBproto.fromStr("TESTTEST", "enum") == ComponentName(["testtest"])
assert NameStyleBproto.fromStr("TEST_TEST", "enum") == ComponentName(["test", "test"])
def test_ComponentNameStyleBproto_comparison():
c = NameStyleBproto.fromStr("ThisIsATest")
assert c == "this-is-a-test"
assert c == "this_is_a_test"
assert c == "thisIsATest"
assert c == "ThisIsATest"
assert c == "This_Is_A_Test"
def test_ComponentNameStyleBproto_from_Component():
c = ComponentName(["this", "is", "a", "test"])
c2 = NameStyleBproto.fromStr(c)
assert c == c2

View File

@@ -0,0 +1,40 @@
import sys
sys.path.append('src/')
from nameHandling.brand_applier import BrandApplier
from protocol_components.message import Message
from nameHandling.base import ComponentName
def test_name_applier():
protocolNameApplier = BrandApplier("brand")
name = ComponentName(["test"])
name = protocolNameApplier.apply(name)
assert name == ComponentName(["brand", "test"])
name = ComponentName(["test", "test"])
name = protocolNameApplier.apply(name)
assert name == ComponentName(["brand", "test", "test"])
msg = Message(ComponentName(["this", "is", "a", "test"]), 0)
msg: Message = protocolNameApplier.apply(msg)
assert msg.name == ComponentName(["brand", "this", "is", "a", "test"])
protocolNameApplier = BrandApplier(ComponentName(["happy", "brand"]))
msg = Message(ComponentName(["this", "is", "a", "test"]), 0)
msg: Message = protocolNameApplier.apply(msg)
assert msg.name == ComponentName(["happy", "brand", "this", "is", "a", "test"])
try:
protocolNameApplier.apply(None)
assert False
except Exception as e:
assert isinstance(e, TypeError)
try:
protocolNameApplier = BrandApplier(None)
assert False
except Exception as e:
assert isinstance(e, TypeError)

View File

@@ -0,0 +1,73 @@
import sys
sys.path.append('src/')
from nameHandling.base import ComponentName
from protocol_components.protocolFactory import FactoryProtocolDefition
from protocol_components.enumeration import FactoryEnumeration, Enumeration
from protocol_components.bitfields import FactoryBitfield, Bitfield
from protocol_components.dtypes import BprotoFieldBaseType
from protocol_components.field import FactoryField
from protocol_components.message import FactoryMessage, Message
from nameHandling.style.cNameStyle import NameStyleC
def test_style_c_fromStr():
try:
NameStyleC.fromStr("")
assert False
except Exception as e:
assert isinstance(e, NotImplementedError)
def test_style_c_toStr_enum():
assert NameStyleC.toStr(ComponentName(["my", "custom", "Values"]), "enum_name") == "MyCustomValues"
assert NameStyleC.toStr(ComponentName(["my", "custom", "enum", "value"]), "enum_item") == "MY_CUSTOM_ENUM_VALUE"
assert NameStyleC.toStr(ComponentName(["my", "custom", "class"]), "struct_name") == "MyCustomClass"
assert NameStyleC.toStr(ComponentName(["my", "custom", "class", "member"]), "struct_member") == "myCustomClassMember"
assert NameStyleC.toStr(ComponentName(["my", "custom", "class"]), "bitfield_name") == "MyCustomClass"
assert NameStyleC.toStr(ComponentName(["my", "custom", "class", "member"]), "bitfield_member") == "myCustomClassMember"
def test_style_c_preprocessor():
protocol_factory = FactoryProtocolDefition()
enum_factory = FactoryEnumeration()
enum_factory.add_value("first-Value", 1)
enum_factory.add_value("second-Important-Value", 2)
protocol_factory.add_enum(enum_factory.assemble("mode"))
bitfield_factory = FactoryBitfield()
bitfield_factory.add_bit("FirstBit", 0)
bitfield_factory.add_bit("SecondBit", 1)
protocol_factory.add_bitfield(bitfield_factory.assemble("bitfield1"))
message_factory = FactoryMessage()
message_factory.add_field(FactoryField().assemble("x", 1, BprotoFieldBaseType.FLOAT32, 2, None))
message_factory.add_field(FactoryField().assemble("y", 2, BprotoFieldBaseType.FLOAT32, 2, None))
protocol_factory.add_message(message_factory.assemble("cordUpdate", 1))
protocol = protocol_factory.assemble("ABCP", 5)
protocol = NameStyleC.preprocess(protocol)
enum: Enumeration = list(protocol.enums.values())[0]
bitfield: Bitfield = list(protocol.bitfields.values())[0]
message: Message = list(protocol.messages.values())[0]
assert isinstance(enum, Enumeration)
assert isinstance(bitfield, Bitfield)
assert isinstance(message, Message)
assert NameStyleC.toStr(enum.name, "enum_name") == "Abcp_enum_Mode"
assert NameStyleC.toStr(bitfield.name, "bitfield_name") == "Abcp_bitfield_Bitfield1"
assert NameStyleC.toStr(message.name, "struct_name") == "Abcp_message_CordUpdate"
assert enum.values == {
ComponentName(["abcp", "_enum_", "mode", "value", "first", "value"]): 1,
ComponentName(["abcp", "_enum_", "mode", "value", "second", "important", "value"]): 2
}
assert bitfield.bits == {
ComponentName(["first", "bit"]): 0,
ComponentName(["second", "bit"]): 1
}

View File

@@ -0,0 +1,59 @@
import sys
sys.path.append('src/')
from nameHandling.base import ComponentName
from protocol_components.protocolFactory import FactoryProtocolDefition
from protocol_components.enumeration import FactoryEnumeration, Enumeration
from protocol_components.bitfields import FactoryBitfield, Bitfield
from protocol_components.dtypes import BprotoFieldBaseType
from protocol_components.field import FactoryField
from protocol_components.message import FactoryMessage, Message
from nameHandling.style.pythonNameStyle import NameStylePython
def test_style_python_fromStr():
try:
NameStylePython.fromStr("")
assert False
except Exception as e:
assert isinstance(e, NotImplementedError)
def test_style_python_toStr_enum():
assert NameStylePython.toStr(ComponentName(["my", "custom", "enum"]), "enum_name") == "MyCustomEnum"
assert NameStylePython.toStr(ComponentName(["my", "custom", "enum", "value"]), "enum_item") == "MY_CUSTOM_ENUM_VALUE"
assert NameStylePython.toStr(ComponentName(["my", "custom", "class"]), "class_name") == "MyCustomClass"
assert NameStylePython.toStr(ComponentName(["my", "custom", "class", "member"]), "class_member") == "my_custom_class_member"
def test_style_python_preprocessor():
protocol_factory = FactoryProtocolDefition()
enum_factory = FactoryEnumeration()
enum_factory.add_value("first-Value", 1)
enum_factory.add_value("second-Important-Value", 2)
protocol_factory.add_enum(enum_factory.assemble("mode"))
bitfield_factory = FactoryBitfield()
bitfield_factory.add_bit("FirstBit", 0)
bitfield_factory.add_bit("SecondBit", 1)
protocol_factory.add_bitfield(bitfield_factory.assemble("bitfield1"))
message_factory = FactoryMessage()
message_factory.add_field(FactoryField().assemble("x", 1, BprotoFieldBaseType.FLOAT32, 2, None))
message_factory.add_field(FactoryField().assemble("y", 2, BprotoFieldBaseType.FLOAT32, 2, None))
protocol_factory.add_message(message_factory.assemble("cordUpdate", 1))
protocol = protocol_factory.assemble("HCPT", 5)
protocol = NameStylePython.preprocess(protocol)
enum: Enumeration = list(protocol.enums.values())[0]
bitfield: Bitfield = list(protocol.bitfields.values())[0]
message: Message = list(protocol.messages.values())[0]
assert isinstance(enum, Enumeration)
assert isinstance(bitfield, Bitfield)
assert NameStylePython.toStr(enum.name, "enum_name") == "HcptEnumMode"
assert NameStylePython.toStr(bitfield.name, "class_name") == "HcptBitfieldBitfield1"
assert NameStylePython.toStr(message.name, "class_name") == "HcptMessageCordUpdate"