Skip to content

Commit

Permalink
EFeru#14 Make Messages IReadonlyDictionary
Browse files Browse the repository at this point in the history
  • Loading branch information
Uight committed Jul 29, 2024
1 parent d269019 commit 1f237cf
Show file tree
Hide file tree
Showing 10 changed files with 101 additions and 100 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
*.suo
*.user
*.sln.docstates
.idea
.vs

# Build results
Expand Down
110 changes: 55 additions & 55 deletions DbcParserLib.Tests/DbcBuilderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,8 @@ public void MessageIsAdded()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(1, dbc.Messages.First().ID);
Assert.IsFalse(dbc.Messages.First().IsExtID);
Assert.AreEqual(1, dbc.Messages.First().Value.ID);
Assert.IsFalse(dbc.Messages.First().Value.IsExtID);
}

[Test]
Expand All @@ -119,8 +119,8 @@ public void ExtendedMessageIsAdded()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(1, dbc.Messages.First().ID);
Assert.IsTrue(dbc.Messages.First().IsExtID);
Assert.AreEqual(1, dbc.Messages.First().Value.ID);
Assert.IsTrue(dbc.Messages.First().Value.IsExtID);
}

[Test]
Expand All @@ -134,8 +134,8 @@ public void CommentIsAddedToMessage()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(234, dbc.Messages.First().ID);
Assert.AreEqual("comment", dbc.Messages.First().Comment);
Assert.AreEqual(234, dbc.Messages.First().Value.ID);
Assert.AreEqual("comment", dbc.Messages.First().Value.Comment);
}

[Test]
Expand All @@ -149,8 +149,8 @@ public void CommentIsNotAddedToMissingMessage()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(234, dbc.Messages.First().ID);
Assert.IsNull(dbc.Messages.First().Comment);
Assert.AreEqual(234, dbc.Messages.First().Value.ID);
Assert.IsNull(dbc.Messages.First().Value.Comment);
}

[Test]
Expand Down Expand Up @@ -178,14 +178,14 @@ public void SignalIsAddedToCurrentMessage()
Assert.AreEqual(2, dbc.Messages.Count());

var messagesToArray = dbc.Messages.ToArray();
Assert.AreEqual(234, messagesToArray[0].ID);
Assert.AreEqual(1, messagesToArray[0].Signals.Count());
Assert.AreEqual("name1", messagesToArray[0].Signals.First().Name);

Assert.AreEqual(235, messagesToArray[1].ID);
Assert.AreEqual(2, messagesToArray[1].Signals.Count());
Assert.AreEqual("name2", messagesToArray[1].Signals.First().Name);
Assert.AreEqual("name3", messagesToArray[1].Signals.Skip(1).First().Name);
Assert.AreEqual(234, messagesToArray[0].Value.ID);
Assert.AreEqual(1, messagesToArray[0].Value.Signals.Count());
Assert.AreEqual("name1", messagesToArray[0].Value.Signals.First().Name);

Assert.AreEqual(235, messagesToArray[1].Value.ID);
Assert.AreEqual(2, messagesToArray[1].Value.Signals.Count());
Assert.AreEqual("name2", messagesToArray[1].Value.Signals.First().Name);
Assert.AreEqual("name3", messagesToArray[1].Value.Signals.Skip(1).First().Name);
}

[Test]
Expand Down Expand Up @@ -213,9 +213,9 @@ public void CommentIsAddedToSignal()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(234, dbc.Messages.First().ID);
Assert.AreEqual("name1", dbc.Messages.First().Signals.First().Name);
Assert.AreEqual("comment", dbc.Messages.First().Signals.First().Comment);
Assert.AreEqual(234, dbc.Messages.First().Value.ID);
Assert.AreEqual("name1", dbc.Messages.First().Value.Signals.First().Name);
Assert.AreEqual("comment", dbc.Messages.First().Value.Signals.First().Comment);
}

[Test]
Expand All @@ -232,9 +232,9 @@ public void CommentIsNotAddedToMissingSignalMessageId()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(234, dbc.Messages.First().ID);
Assert.AreEqual("name1", dbc.Messages.First().Signals.First().Name);
Assert.IsNull(dbc.Messages.First().Signals.First().Comment);
Assert.AreEqual(234, dbc.Messages.First().Value.ID);
Assert.AreEqual("name1", dbc.Messages.First().Value.Signals.First().Name);
Assert.IsNull(dbc.Messages.First().Value.Signals.First().Comment);
}

[Test]
Expand All @@ -251,9 +251,9 @@ public void CommentIsNotAddedToMissingSignalName()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(234, dbc.Messages.First().ID);
Assert.AreEqual("name1", dbc.Messages.First().Signals.First().Name);
Assert.IsNull(dbc.Messages.First().Signals.First().Comment);
Assert.AreEqual(234, dbc.Messages.First().Value.ID);
Assert.AreEqual("name1", dbc.Messages.First().Value.Signals.First().Name);
Assert.IsNull(dbc.Messages.First().Value.Signals.First().Comment);
}

[Test]
Expand All @@ -271,11 +271,11 @@ public void TableValuesAreAddedToSignal()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(234, dbc.Messages.First().ID);
Assert.AreEqual("name1", dbc.Messages.First().Signals.First().Name);
Assert.AreEqual(testValuesDict, dbc.Messages.First().Signals.First().ValueTableMap);
Assert.AreEqual(1, dbc.Messages.First().Signals.First().ValueTableMap.Keys.First());
Assert.AreEqual("fake", dbc.Messages.First().Signals.First().ValueTableMap.Values.First());
Assert.AreEqual(234, dbc.Messages.First().Value.ID);
Assert.AreEqual("name1", dbc.Messages.First().Value.Signals.First().Name);
Assert.AreEqual(testValuesDict, dbc.Messages.First().Value.Signals.First().ValueTableMap);
Assert.AreEqual(1, dbc.Messages.First().Value.Signals.First().ValueTableMap.Keys.First());
Assert.AreEqual("fake", dbc.Messages.First().Value.Signals.First().ValueTableMap.Values.First());
}

[Test]
Expand All @@ -293,11 +293,11 @@ public void TableValuesWithExtendedMessageIdAreAddedToSignal()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(message.ID, dbc.Messages.First().ID);
Assert.AreEqual("name1", dbc.Messages.First().Signals.First().Name);
Assert.AreEqual(testValuesDict, dbc.Messages.First().Signals.First().ValueTableMap);
Assert.AreEqual(1, dbc.Messages.First().Signals.First().ValueTableMap.Keys.First());
Assert.AreEqual("fake", dbc.Messages.First().Signals.First().ValueTableMap.Values.First());
Assert.AreEqual(message.ID, dbc.Messages.First().Value.ID);
Assert.AreEqual("name1", dbc.Messages.First().Value.Signals.First().Name);
Assert.AreEqual(testValuesDict, dbc.Messages.First().Value.Signals.First().ValueTableMap);
Assert.AreEqual(1, dbc.Messages.First().Value.Signals.First().ValueTableMap.Keys.First());
Assert.AreEqual("fake", dbc.Messages.First().Value.Signals.First().ValueTableMap.Values.First());
}

[Test]
Expand All @@ -315,9 +315,9 @@ public void TableValueIsNotAddedToMissingSignalMessageId()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(234, dbc.Messages.First().ID);
Assert.AreEqual("name1", dbc.Messages.First().Signals.First().Name);
Assert.IsEmpty(dbc.Messages.First().Signals.First().ValueTableMap);
Assert.AreEqual(234, dbc.Messages.First().Value.ID);
Assert.AreEqual("name1", dbc.Messages.First().Value.Signals.First().Name);
Assert.IsEmpty(dbc.Messages.First().Value.Signals.First().ValueTableMap);
}

[Test]
Expand All @@ -335,9 +335,9 @@ public void TableValueIsNotAddedToMissingSignalName()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(234, dbc.Messages.First().ID);
Assert.AreEqual("name1", dbc.Messages.First().Signals.First().Name);
Assert.IsEmpty(dbc.Messages.First().Signals.First().ValueTableMap);
Assert.AreEqual(234, dbc.Messages.First().Value.ID);
Assert.AreEqual("name1", dbc.Messages.First().Value.Signals.First().Name);
Assert.IsEmpty(dbc.Messages.First().Value.Signals.First().ValueTableMap);
}

[Test]
Expand All @@ -357,11 +357,11 @@ public void NamedTableValuesAreAddedToSignal()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(234, dbc.Messages.First().ID);
Assert.AreEqual("name1", dbc.Messages.First().Signals.First().Name);
Assert.AreEqual(testValuesDict, dbc.Messages.First().Signals.First().ValueTableMap);
Assert.AreEqual(1, dbc.Messages.First().Signals.First().ValueTableMap.Keys.First());
Assert.AreEqual("fake", dbc.Messages.First().Signals.First().ValueTableMap.Values.First());
Assert.AreEqual(234, dbc.Messages.First().Value.ID);
Assert.AreEqual("name1", dbc.Messages.First().Value.Signals.First().Name);
Assert.AreEqual(testValuesDict, dbc.Messages.First().Value.Signals.First().ValueTableMap);
Assert.AreEqual(1, dbc.Messages.First().Value.Signals.First().ValueTableMap.Keys.First());
Assert.AreEqual("fake", dbc.Messages.First().Value.Signals.First().ValueTableMap.Values.First());
}

[Test]
Expand All @@ -381,9 +381,9 @@ public void NamedTableValueIsNotAddedToMissingSignalMessageId()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(234, dbc.Messages.First().ID);
Assert.AreEqual("name1", dbc.Messages.First().Signals.First().Name);
Assert.IsEmpty(dbc.Messages.First().Signals.First().ValueTableMap);
Assert.AreEqual(234, dbc.Messages.First().Value.ID);
Assert.AreEqual("name1", dbc.Messages.First().Value.Signals.First().Name);
Assert.IsEmpty(dbc.Messages.First().Value.Signals.First().ValueTableMap);
}

[Test]
Expand All @@ -403,9 +403,9 @@ public void NamedTableValueIsNotAddedToMissingSignalName()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(234, dbc.Messages.First().ID);
Assert.AreEqual("name1", dbc.Messages.First().Signals.First().Name);
Assert.IsEmpty(dbc.Messages.First().Signals.First().ValueTableMap);
Assert.AreEqual(234, dbc.Messages.First().Value.ID);
Assert.AreEqual("name1", dbc.Messages.First().Value.Signals.First().Name);
Assert.IsEmpty(dbc.Messages.First().Value.Signals.First().ValueTableMap);
}

[Test]
Expand All @@ -422,9 +422,9 @@ public void NamedTableValueIsNotAddedIfTableNameDoesNotExist()

Assert.IsEmpty(dbc.Nodes);
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(234, dbc.Messages.First().ID);
Assert.AreEqual("name1", dbc.Messages.First().Signals.First().Name);
Assert.IsEmpty(dbc.Messages.First().Signals.First().ValueTableMap);
Assert.AreEqual(234, dbc.Messages.First().Value.ID);
Assert.AreEqual("name1", dbc.Messages.First().Value.Signals.First().Name);
Assert.IsEmpty(dbc.Messages.First().Value.Signals.First().ValueTableMap);
}

[Test]
Expand Down
54 changes: 27 additions & 27 deletions DbcParserLib.Tests/ParserTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public void SimpleParseFileTest()
var dbc = Parser.ParseFromPath(MainDbcFilePath);

Assert.AreEqual(38, dbc.Messages.Count());
Assert.AreEqual(485, dbc.Messages.SelectMany(m => m.Signals).Count());
Assert.AreEqual(485, dbc.Messages.Values.SelectMany(m => m.Signals).Count());
Assert.AreEqual(15, dbc.Nodes.Count());
}
[Test]
Expand All @@ -31,7 +31,7 @@ public void ParseMessageWithStartBitGreaterThan255Test()
var dbc = Parser.Parse(dbcString);

Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(2, dbc.Messages.SelectMany(m => m.Signals).Count());
Assert.AreEqual(2, dbc.Messages.Values.SelectMany(m => m.Signals).Count());
}

[Test]
Expand All @@ -41,7 +41,7 @@ public void ParsingTwiceClearsCollectionsTest()
var dbc = Parser.ParseFromPath(MainDbcFilePath);
dbc = Parser.ParseFromPath(MainDbcFilePath);
Assert.AreEqual(38, dbc.Messages.Count());
Assert.AreEqual(485, dbc.Messages.SelectMany(m => m.Signals).Count());
Assert.AreEqual(485, dbc.Messages.Values.SelectMany(m => m.Signals).Count());
Assert.AreEqual(15, dbc.Nodes.Count());
}

Expand All @@ -50,26 +50,26 @@ public void CheckMessagePropertiesTest()
{
var dbc = Parser.ParseFromPath(MainDbcFilePath);

var targetMessage = dbc.Messages.FirstOrDefault(x => x.ID == 309);
var targetMessage = dbc.Messages.FirstOrDefault(x => x.Value.ID == 309);
Assert.IsNotNull(targetMessage);

Assert.AreEqual("ESP_135h", targetMessage.Name);
Assert.AreEqual("ESP", targetMessage.Transmitter);
Assert.AreEqual(5, targetMessage.DLC);
Assert.AreEqual(19, targetMessage.Signals.Count);
Assert.AreEqual("ESP_135h", targetMessage.Value.Name);
Assert.AreEqual("ESP", targetMessage.Value.Transmitter);
Assert.AreEqual(5, targetMessage.Value.DLC);
Assert.AreEqual(19, targetMessage.Value.Signals.Count);
}

[Test]
public void CheckSignalPropertiesTest()
{
var dbc = Parser.ParseFromPath(MainDbcFilePath);

var targetMessage = dbc.Messages.FirstOrDefault(x => x.ID == 1006);
var targetMessage = dbc.Messages.FirstOrDefault(x => x.Value.ID == 1006);
Assert.IsNotNull(targetMessage);

Assert.AreEqual(24, targetMessage.Signals.Count);
Assert.AreEqual(24, targetMessage.Value.Signals.Count);

var signal = targetMessage.Signals.FirstOrDefault(x => x.Name.Equals("UI_camBlockBlurThreshold"));
var signal = targetMessage.Value.Signals.FirstOrDefault(x => x.Name.Equals("UI_camBlockBlurThreshold"));
Assert.IsNotNull(signal);
Assert.AreEqual(DbcValueType.Unsigned, signal.ValueType);
Assert.AreEqual(11, signal.StartBit);
Expand All @@ -86,12 +86,12 @@ public void CheckOtherSignalPropertiesTest()
{
var dbc = Parser.ParseFromPath(MainDbcFilePath);

var targetMessage = dbc.Messages.FirstOrDefault(x => x.ID == 264);
var targetMessage = dbc.Messages.FirstOrDefault(x => x.Value.ID == 264);
Assert.IsNotNull(targetMessage);

Assert.AreEqual(7, targetMessage.Signals.Count);
Assert.AreEqual(7, targetMessage.Value.Signals.Count);

var signal = targetMessage.Signals.FirstOrDefault(x => x.Name.Equals("DI_torqueMotor"));
var signal = targetMessage.Value.Signals.FirstOrDefault(x => x.Name.Equals("DI_torqueMotor"));
Assert.IsNotNull(signal);
Assert.AreEqual(DbcValueType.Signed, signal.ValueType);
Assert.AreEqual("Nm", signal.Unit);
Expand Down Expand Up @@ -142,12 +142,12 @@ public void SignalCommentIsProperlyAppliedWhenMultipleSignalsShareSameNameTest()

for (var i = 0; i < messageIds.Length; ++i)
{
var targetMessage = dbc.Messages.FirstOrDefault(x => x.ID == messageIds[i]);
var targetMessage = dbc.Messages.FirstOrDefault(x => x.Value.ID == messageIds[i]);
Assert.IsNotNull(targetMessage);

Assert.AreEqual(signalCount[i], targetMessage.Signals.Count);
Assert.AreEqual(signalCount[i], targetMessage.Value.Signals.Count);

var signal = targetMessage.Signals.FirstOrDefault(x => x.Name.Equals("COUNTER_ALT"));
var signal = targetMessage.Value.Signals.FirstOrDefault(x => x.Name.Equals("COUNTER_ALT"));
Assert.IsNotNull(signal);
Assert.AreEqual("only increments on change", signal.Comment);
}
Expand All @@ -174,10 +174,10 @@ public void ManagingOtherKindOfCommentsTest()
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(1, dbc.Nodes.Count());

Assert.AreEqual("Message comment", dbc.Messages.First().Comment);
Assert.AreEqual("Message comment", dbc.Messages.First().Value.Comment);
Assert.AreEqual("Node comment", dbc.Nodes.First().Comment);

var signal = dbc.Messages.Single().Signals.FirstOrDefault(x => x.Name.Equals("COUNTER_ALT"));
var signal = dbc.Messages.Single().Value.Signals.FirstOrDefault(x => x.Name.Equals("COUNTER_ALT"));
Assert.IsNotNull(signal);
Assert.AreEqual("only increments on change", signal.Comment);
}
Expand Down Expand Up @@ -205,10 +205,10 @@ second line
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(1, dbc.Nodes.Count());

Assert.AreEqual($"Message comment first line{Environment.NewLine}second line{Environment.NewLine}third line", dbc.Messages.First().Comment);
Assert.AreEqual($"Message comment first line{Environment.NewLine}second line{Environment.NewLine}third line", dbc.Messages.First().Value.Comment);
Assert.AreEqual("Node comment", dbc.Nodes.First().Comment);

var signal = dbc.Messages.Single().Signals.FirstOrDefault(x => x.Name.Equals("COUNTER_ALT"));
var signal = dbc.Messages.Single().Value.Signals.FirstOrDefault(x => x.Name.Equals("COUNTER_ALT"));
Assert.IsNotNull(signal);
Assert.AreEqual("only increments on change", signal.Comment);
}
Expand Down Expand Up @@ -238,7 +238,7 @@ public void NamedValTableIsAppliedTest()
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(0, dbc.Nodes.Count());

var signal = dbc.Messages.Single().Signals.Single();
var signal = dbc.Messages.Single().Value.Signals.Single();
Assert.IsNotNull(signal);
Assert.AreEqual(expectedValueTableMap, signal.ValueTableMap);
}
Expand Down Expand Up @@ -266,7 +266,7 @@ public void ExplicitValTableIsAppliedTest()
Assert.AreEqual(1, dbc.Messages.Count());
Assert.AreEqual(0, dbc.Nodes.Count());

var signal = dbc.Messages.Single().Signals.Single();
var signal = dbc.Messages.Single().Value.Signals.Single();
Assert.IsNotNull(signal);
Assert.AreEqual(expectedValueTableMap, signal.ValueTableMap);
}
Expand Down Expand Up @@ -307,11 +307,11 @@ public void UserDefinedAttributesTest()
Assert.AreEqual(70, node.CustomProperties["HexAttribute"].HexCustomProperty.Value);

var message = dbc.Messages.First();
Assert.AreEqual(2, message.CustomProperties.Count());
Assert.AreEqual(7, message.CustomProperties["IntegerAttribute"].IntegerCustomProperty.Value);
Assert.AreEqual(0.5, message.CustomProperties["FloatAttribute"].FloatCustomProperty.Value);
Assert.AreEqual(2, message.Value.CustomProperties.Count());
Assert.AreEqual(7, message.Value.CustomProperties["IntegerAttribute"].IntegerCustomProperty.Value);
Assert.AreEqual(0.5, message.Value.CustomProperties["FloatAttribute"].FloatCustomProperty.Value);

var signal = dbc.Messages.Single().Signals.FirstOrDefault(x => x.Name.Equals("COUNTER_ALT"));
var signal = dbc.Messages.Single().Value.Signals.FirstOrDefault(x => x.Name.Equals("COUNTER_ALT"));
Assert.IsNotNull(signal);
Assert.AreEqual(2, signal.CustomProperties.Count());
Assert.AreEqual("ThirdVal", signal.CustomProperties["EnumAttributeName"].EnumCustomProperty.Value);
Expand Down
Loading

0 comments on commit 1f237cf

Please sign in to comment.