aboutsummaryrefslogtreecommitdiff
path: root/Tests/WmapParserTests/EvolutionParserTests.swift
diff options
context:
space:
mode:
authorRuben Beltran del Rio <jj@r.bdr.sh>2025-12-13 01:17:52 +0100
committerRuben Beltran del Rio <jj@r.bdr.sh>2025-12-14 09:15:07 +0100
commit03f1a7389afeadf9aa2b1d62a38e5cb0a2a7e60d (patch)
tree2efefc34a61c62d55d8436180acfc3590287f5fd /Tests/WmapParserTests/EvolutionParserTests.swift
Initial implementation
Diffstat (limited to 'Tests/WmapParserTests/EvolutionParserTests.swift')
-rw-r--r--Tests/WmapParserTests/EvolutionParserTests.swift48
1 files changed, 48 insertions, 0 deletions
diff --git a/Tests/WmapParserTests/EvolutionParserTests.swift b/Tests/WmapParserTests/EvolutionParserTests.swift
new file mode 100644
index 0000000..e87bf9e
--- /dev/null
+++ b/Tests/WmapParserTests/EvolutionParserTests.swift
@@ -0,0 +1,48 @@
+import Testing
+
+@testable import WmapParser
+
+@Test func shouldParsePositiveEvolution() {
+ let source = "[Evolution] Nanomachines + 0.5"
+ let result = parse(source)
+ #expect(result.evolutions.count == 1)
+ #expect(
+ result.evolutions.first == Evolution(component: "Nanomachines", value: 0.5)
+ )
+}
+
+@Test func shouldParseNegativeEvolution() {
+ let source = "[Evolution] FOXDIE - 0.3"
+ let result = parse(source)
+ #expect(result.evolutions.count == 1)
+ #expect(
+ result.evolutions.first == Evolution(component: "FOXDIE", value: -0.3)
+ )
+}
+
+@Test func shouldHandleCaseInsensitiveEvolutionKeyword() {
+ let source = "[Evolution] tamales + 0.73"
+ let result = parse(source)
+ #expect(result.evolutions.count == 1)
+ #expect(
+ result.evolutions.first == Evolution(component: "tamales", value: 0.73)
+ )
+}
+
+@Test func shouldPreserveCaseInEvolutionComponentLabel() {
+ let source = "[EVOLUTION] iMac - 0.2"
+ let result = parse(source)
+ #expect(result.evolutions.count == 1)
+ #expect(
+ result.evolutions.first == Evolution(component: "iMac", value: -0.2)
+ )
+}
+
+@Test func shouldHandleDecimalEvolutionValues() {
+ let source = "[Evolution] Numerals + .75"
+ let result = parse(source)
+ #expect(result.evolutions.count == 1)
+ #expect(
+ result.evolutions.first == Evolution(component: "Numerals", value: 0.75)
+ )
+}