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,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
}