diff options
| author | Ruben Beltran del Rio <jj@r.bdr.sh> | 2025-12-14 16:16:22 +0100 |
|---|---|---|
| committer | Ruben Beltran del Rio <jj@r.bdr.sh> | 2025-12-14 16:40:52 +0100 |
| commit | 0b90075f76b6f2df77c01c303322323b1395641a (patch) | |
| tree | 4e13d3ce0b1f4792eab8d04caefda2218565f5a9 /Tests | |
| parent | 088a941a72c2f3e9b3382eb9c5d2f21203dd401c (diff) | |
Use WmapParser namespace
Diffstat (limited to 'Tests')
| -rw-r--r-- | Tests/WmapParserTests/ComponentParserTests.swift | 66 | ||||
| -rw-r--r-- | Tests/WmapParserTests/DependenciesParserTests.swift | 16 | ||||
| -rw-r--r-- | Tests/WmapParserTests/EvolutionParserTests.swift | 20 | ||||
| -rw-r--r-- | Tests/WmapParserTests/GroupsParserTests.swift | 10 | ||||
| -rw-r--r-- | Tests/WmapParserTests/InertiaParserTests.swift | 6 | ||||
| -rw-r--r-- | Tests/WmapParserTests/NotesParserTests.swift | 19 | ||||
| -rw-r--r-- | Tests/WmapParserTests/StagesParserTests.swift | 20 | ||||
| -rw-r--r-- | Tests/WmapParserTests/WmapParserTests.swift | 134 |
8 files changed, 147 insertions, 144 deletions
diff --git a/Tests/WmapParserTests/ComponentParserTests.swift b/Tests/WmapParserTests/ComponentParserTests.swift index 52e347a..1f3a451 100644 --- a/Tests/WmapParserTests/ComponentParserTests.swift +++ b/Tests/WmapParserTests/ComponentParserTests.swift @@ -4,128 +4,128 @@ import Testing @Test func shouldParseABasicComponent() { let source = "Dominoes (0.9, 0.5)" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 1) #expect( result.components.first - == Component( - label: "Dominoes", coordinates: MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle + == WmapParser.Component( + label: "Dominoes", coordinates: WmapParser.MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle ) ) } @Test func shouldParseAComponentWithAShape() { let source = "Database (0.33, 0.81) [Square]" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 1) #expect( result.components.first - == Component( - label: "Database", coordinates: MapPoint(xCoordinate: 0.33, yCoordinate: 0.81), + == WmapParser.Component( + label: "Database", coordinates: WmapParser.MapPoint(xCoordinate: 0.33, yCoordinate: 0.81), shape: .square) ) } @Test func shouldParseAComponentWithXShape() { let source = "API (0.5, 0.6) [x]" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 1) #expect( result.components.first - == Component( - label: "API", coordinates: MapPoint(xCoordinate: 0.5, yCoordinate: 0.6), shape: .xMark) + == WmapParser.Component( + label: "API", coordinates: WmapParser.MapPoint(xCoordinate: 0.5, yCoordinate: 0.6), shape: .xMark) ) } @Test func shouldParseAComponentWithTriangleShape() { let source = "Service (0.4, 0.7) [Triangle]" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 1) #expect( result.components.first - == Component( - label: "Service", coordinates: MapPoint(xCoordinate: 0.4, yCoordinate: 0.7), + == WmapParser.Component( + label: "Service", coordinates: WmapParser.MapPoint(xCoordinate: 0.4, yCoordinate: 0.7), shape: .triangle) ) } @Test func shouldParseAComponentWithCircleShape() { let source = "Process (0.2, 0.9) [CIRCLE]" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 1) #expect( result.components.first - == Component( - label: "Process", coordinates: MapPoint(xCoordinate: 0.2, yCoordinate: 0.9), shape: .circle) + == WmapParser.Component( + label: "Process", coordinates: WmapParser.MapPoint(xCoordinate: 0.2, yCoordinate: 0.9), shape: .circle) ) } @Test func shouldDefaultShapeToCircleIfInvalid() { let source = "Figures (0.12, 0.711) [" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 1) #expect( result.components.first - == Component( - label: "Figures", coordinates: MapPoint(xCoordinate: 0.12, yCoordinate: 0.711), + == WmapParser.Component( + label: "Figures", coordinates: WmapParser.MapPoint(xCoordinate: 0.12, yCoordinate: 0.711), shape: .circle) ) } @Test func shouldHandleDecimalNumbers() { let source = "Item (.5, .123)" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 1) #expect( result.components.first - == Component( - label: "Item", coordinates: MapPoint(xCoordinate: 0.5, yCoordinate: 0.123), shape: .circle) + == WmapParser.Component( + label: "Item", coordinates: WmapParser.MapPoint(xCoordinate: 0.5, yCoordinate: 0.123), shape: .circle) ) } @Test func shouldHandleIntegersAsCoordinates() { let source = "Item (1, 0)" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 1) #expect( result.components.first - == Component( - label: "Item", coordinates: MapPoint(xCoordinate: 1.0, yCoordinate: 0.0), shape: .circle) + == WmapParser.Component( + label: "Item", coordinates: WmapParser.MapPoint(xCoordinate: 1.0, yCoordinate: 0.0), shape: .circle) ) } @Test func shouldPreserveCaseInComponentLabels() { let source = "RubberGaskets (0.5, 0.5)" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 1) #expect( result.components.first - == Component( - label: "RubberGaskets", coordinates: MapPoint(xCoordinate: 0.5, yCoordinate: 0.5), + == WmapParser.Component( + label: "RubberGaskets", coordinates: WmapParser.MapPoint(xCoordinate: 0.5, yCoordinate: 0.5), shape: .circle) ) } @Test func shouldHandleComponentLabelsWithSpaces() { let source = "Big Lawnmowers (0.5, 0.5)" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 1) #expect( result.components.first - == Component( - label: "Big Lawnmowers", coordinates: MapPoint(xCoordinate: 0.5, yCoordinate: 0.5), + == WmapParser.Component( + label: "Big Lawnmowers", coordinates: WmapParser.MapPoint(xCoordinate: 0.5, yCoordinate: 0.5), shape: .circle) ) } @Test func shouldHandleWhitespaceAroundTokens() { let source = " Outer Space ( 0.9 , 0.5 ) [ Square ] " - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 1) #expect( result.components.first - == Component( - label: "Outer Space", coordinates: MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), + == WmapParser.Component( + label: "Outer Space", coordinates: WmapParser.MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .square) ) } diff --git a/Tests/WmapParserTests/DependenciesParserTests.swift b/Tests/WmapParserTests/DependenciesParserTests.swift index 88e6e99..356d5d3 100644 --- a/Tests/WmapParserTests/DependenciesParserTests.swift +++ b/Tests/WmapParserTests/DependenciesParserTests.swift @@ -4,41 +4,41 @@ import Testing @Test func shouldParseUndirectedDependency() { let source = "Smoke -- Fire" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.dependencies.count == 1) #expect( result.dependencies.first - == Dependency(fromComponent: "Smoke", toComponent: "Fire", isDirected: false) + == WmapParser.Dependency(fromComponent: "Smoke", toComponent: "Fire", isDirected: false) ) } @Test func shouldParseDirectedDependency() { let source = "Cool Thing -> Different Cool Thing" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.dependencies.count == 1) #expect( result.dependencies.first - == Dependency( + == WmapParser.Dependency( fromComponent: "Cool Thing", toComponent: "Different Cool Thing", isDirected: true) ) } @Test func shouldPreserveCaseInDependencyLabels() { let source = "SaRcAsM -> Seriousness." - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.dependencies.count == 1) #expect( result.dependencies.first - == Dependency(fromComponent: "SaRcAsM", toComponent: "Seriousness.", isDirected: true) + == WmapParser.Dependency(fromComponent: "SaRcAsM", toComponent: "Seriousness.", isDirected: true) ) } @Test func shouldIgnoreWhitespaceInDependencies() { let source = " loose --TIGHT" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.dependencies.count == 1) #expect( result.dependencies.first - == Dependency(fromComponent: "loose", toComponent: "TIGHT", isDirected: false) + == WmapParser.Dependency(fromComponent: "loose", toComponent: "TIGHT", isDirected: false) ) } diff --git a/Tests/WmapParserTests/EvolutionParserTests.swift b/Tests/WmapParserTests/EvolutionParserTests.swift index e87bf9e..66c946a 100644 --- a/Tests/WmapParserTests/EvolutionParserTests.swift +++ b/Tests/WmapParserTests/EvolutionParserTests.swift @@ -4,45 +4,45 @@ import Testing @Test func shouldParsePositiveEvolution() { let source = "[Evolution] Nanomachines + 0.5" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.evolutions.count == 1) #expect( - result.evolutions.first == Evolution(component: "Nanomachines", value: 0.5) + result.evolutions.first == WmapParser.Evolution(component: "Nanomachines", value: 0.5) ) } @Test func shouldParseNegativeEvolution() { let source = "[Evolution] FOXDIE - 0.3" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.evolutions.count == 1) #expect( - result.evolutions.first == Evolution(component: "FOXDIE", value: -0.3) + result.evolutions.first == WmapParser.Evolution(component: "FOXDIE", value: -0.3) ) } @Test func shouldHandleCaseInsensitiveEvolutionKeyword() { let source = "[Evolution] tamales + 0.73" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.evolutions.count == 1) #expect( - result.evolutions.first == Evolution(component: "tamales", value: 0.73) + result.evolutions.first == WmapParser.Evolution(component: "tamales", value: 0.73) ) } @Test func shouldPreserveCaseInEvolutionComponentLabel() { let source = "[EVOLUTION] iMac - 0.2" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.evolutions.count == 1) #expect( - result.evolutions.first == Evolution(component: "iMac", value: -0.2) + result.evolutions.first == WmapParser.Evolution(component: "iMac", value: -0.2) ) } @Test func shouldHandleDecimalEvolutionValues() { let source = "[Evolution] Numerals + .75" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.evolutions.count == 1) #expect( - result.evolutions.first == Evolution(component: "Numerals", value: 0.75) + result.evolutions.first == WmapParser.Evolution(component: "Numerals", value: 0.75) ) } diff --git a/Tests/WmapParserTests/GroupsParserTests.swift b/Tests/WmapParserTests/GroupsParserTests.swift index dced486..a441a67 100644 --- a/Tests/WmapParserTests/GroupsParserTests.swift +++ b/Tests/WmapParserTests/GroupsParserTests.swift @@ -4,35 +4,35 @@ import Testing @Test func shouldParseAGroupWithASingleComponent() { let source = "[Group] Lonely" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.groups.count == 1) #expect(result.groups.first?.components == ["Lonely"]) } @Test func shouldParseAGroupWithMultipleComponents() { let source = "[GrouP] Huey, Dewey, Louie" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.groups.count == 1) #expect(result.groups.first?.components == ["Huey", "Dewey", "Louie"]) } @Test func shouldHandleCaseInsensitiveGroupKeyword() { let source = "[group] Salt, Pepper" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.groups.count == 1) #expect(result.groups.first?.components == ["Salt", "Pepper"]) } @Test func shouldPreserveCaseInGroupComponentLabel() { let source = "[GROUP] XML, LaTeX" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.groups.count == 1) #expect(result.groups.first?.components == ["XML", "LaTeX"]) } @Test func shouldHandleWhitespaceAroundCommas() { let source = "[Group] sky, is large, emperor" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.groups.count == 1) #expect(result.groups.first?.components == ["sky", "is large", "emperor"]) } diff --git a/Tests/WmapParserTests/InertiaParserTests.swift b/Tests/WmapParserTests/InertiaParserTests.swift index 92d9868..bcee55f 100644 --- a/Tests/WmapParserTests/InertiaParserTests.swift +++ b/Tests/WmapParserTests/InertiaParserTests.swift @@ -4,21 +4,21 @@ import Testing @Test func shouldParseInertia() { let source = "[Inertia] Print Media" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.inertias.count == 1) #expect(result.inertias.first?.component == "Print Media") } @Test func shouldHandleCaseInsensitiveInertiaKeyword() { let source = "[inertia] Yes" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.inertias.count == 1) #expect(result.inertias.first?.component == "Yes") } @Test func shouldPreserveCaseInInertiaComponentLabel() { let source = "[INERTIA] SpOnGeBoB" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.inertias.count == 1) #expect(result.inertias.first?.component == "SpOnGeBoB") } diff --git a/Tests/WmapParserTests/NotesParserTests.swift b/Tests/WmapParserTests/NotesParserTests.swift index 655bef6..ae99c75 100644 --- a/Tests/WmapParserTests/NotesParserTests.swift +++ b/Tests/WmapParserTests/NotesParserTests.swift @@ -4,39 +4,42 @@ import Testing @Test func shouldParseANote() { let source = "[Note] (0.5, 0.5) This is a note" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.notes.count == 1) #expect( result.notes.first - == Note(text: "This is a note", coordinates: MapPoint(xCoordinate: 0.5, yCoordinate: 0.5)) + == WmapParser.Note(text: "This is a note", coordinates: WmapParser.MapPoint(xCoordinate: 0.5, yCoordinate: 0.5)) ) } @Test func shouldHandleCaseInsensitiveNoteKeyword() { let source = "[note] (0.1, 0.2) Text" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.notes.count == 1) #expect( result.notes.first - == Note(text: "Text", coordinates: MapPoint(xCoordinate: 0.1, yCoordinate: 0.2)) + == WmapParser.Note(text: "Text", coordinates: WmapParser.MapPoint(xCoordinate: 0.1, yCoordinate: 0.2)) ) } @Test func shouldPreserveCaseInNoteText() { let source = "[NOTE] (0.77, 0.19) Important NOTE" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.notes.count == 1) #expect( result.notes.first - == Note(text: "Important NOTE", coordinates: MapPoint(xCoordinate: 0.77, yCoordinate: 0.19)) + == WmapParser.Note(text: "Important NOTE", coordinates: WmapParser.MapPoint(xCoordinate: 0.77, yCoordinate: 0.19)) ) } @Test func shouldHandleEmptyNoteText() { let source = "[Note] (0.5, 0.5) " - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.notes.count == 1) #expect( - result.notes.first == Note(text: "", coordinates: MapPoint(xCoordinate: 0.5, yCoordinate: 0.5)) + result.notes.first == WmapParser.Note( + text: "", + coordinates: WmapParser.MapPoint(xCoordinate: 0.5, yCoordinate: 0.5) + ) ) } diff --git a/Tests/WmapParserTests/StagesParserTests.swift b/Tests/WmapParserTests/StagesParserTests.swift index 50bab4b..2dd30fa 100644 --- a/Tests/WmapParserTests/StagesParserTests.swift +++ b/Tests/WmapParserTests/StagesParserTests.swift @@ -4,45 +4,45 @@ import Testing @Test func shouldParseStageI() { let source = "[I] 0.25" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.stages.count == 1) #expect( - result.stages.first == Stage(stage: .stageI, value: 0.25) + result.stages.first == WmapParser.Stage(stage: .stageI, value: 0.25) ) } @Test func shouldParseStageII() { let source = "[ii] 0.5" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.stages.count == 1) #expect( - result.stages.first == Stage(stage: .stageII, value: 0.5) + result.stages.first == WmapParser.Stage(stage: .stageII, value: 0.5) ) } @Test func shouldParseStageIII() { let source = "[III] 0.75" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.stages.count == 1) #expect( - result.stages.first == Stage(stage: .stageIII, value: 0.75) + result.stages.first == WmapParser.Stage(stage: .stageIII, value: 0.75) ) } @Test func shouldParseStageIV() { let source = "[Iv] 1.0" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.stages.count == 1) #expect( - result.stages.first == Stage(stage: .stageIV, value: 1.0) + result.stages.first == WmapParser.Stage(stage: .stageIV, value: 1.0) ) } @Test func shouldHandleDecimalValues() { let source = "[i] .333" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.stages.count == 1) #expect( - result.stages.first == Stage(stage: .stageI, value: 0.333) + result.stages.first == WmapParser.Stage(stage: .stageI, value: 0.333) ) } diff --git a/Tests/WmapParserTests/WmapParserTests.swift b/Tests/WmapParserTests/WmapParserTests.swift index b141dc9..f5dfe38 100644 --- a/Tests/WmapParserTests/WmapParserTests.swift +++ b/Tests/WmapParserTests/WmapParserTests.swift @@ -8,73 +8,73 @@ import Testing Bucket (0.8, 0.4) [x] Water -> Bucket """ - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 2) #expect( result.components.first - == Component( - label: "Water", coordinates: MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle) + == WmapParser.Component( + label: "Water", coordinates: WmapParser.MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle) ) #expect( result.components[1] - == Component( - label: "Bucket", coordinates: MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), shape: .xMark) + == WmapParser.Component( + label: "Bucket", coordinates: WmapParser.MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), shape: .xMark) ) #expect(result.dependencies.count == 1) #expect( result.dependencies.first - == Dependency(fromComponent: "Water", toComponent: "Bucket", isDirected: true) + == WmapParser.Dependency(fromComponent: "Water", toComponent: "Bucket", isDirected: true) ) } @Test func shouldHandleUnixLineEndings() { let source = "Penguins (0.9, 0.5)\nI Use Arch BTW (0.8, 0.4) [x]" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 2) #expect( result.components.first - == Component( - label: "Penguins", coordinates: MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle + == WmapParser.Component( + label: "Penguins", coordinates: WmapParser.MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle ) ) #expect( result.components[1] - == Component( - label: "I Use Arch BTW", coordinates: MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), + == WmapParser.Component( + label: "I Use Arch BTW", coordinates: WmapParser.MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), shape: .xMark) ) } @Test func shouldHandleWindowsLineEndings() { let source = "Clippy (0.9, 0.5)\r\nSpace Cadet (0.8, 0.4) [x]" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 2) #expect( result.components.first - == Component( - label: "Clippy", coordinates: MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle) + == WmapParser.Component( + label: "Clippy", coordinates: WmapParser.MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle) ) #expect( result.components[1] - == Component( - label: "Space Cadet", coordinates: MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), + == WmapParser.Component( + label: "Space Cadet", coordinates: WmapParser.MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), shape: .xMark) ) } @Test func shouldHandleMacLineEndings() { let source = "SE/30 (0.9, 0.5)\rPerforma (0.8, 0.4) [x]" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 2) #expect( result.components.first - == Component( - label: "SE/30", coordinates: MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle) + == WmapParser.Component( + label: "SE/30", coordinates: WmapParser.MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle) ) #expect( result.components[1] - == Component( - label: "Performa", coordinates: MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), shape: .xMark) + == WmapParser.Component( + label: "Performa", coordinates: WmapParser.MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), shape: .xMark) ) } @@ -84,73 +84,73 @@ import Testing The Abyss (0.8, 0.4) """ - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 2) #expect( result.components.first - == Component( - label: "The Void", coordinates: MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle + == WmapParser.Component( + label: "The Void", coordinates: WmapParser.MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle ) ) #expect( result.components[1] - == Component( - label: "The Abyss", coordinates: MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), + == WmapParser.Component( + label: "The Abyss", coordinates: WmapParser.MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), shape: .circle) ) } @Test func shouldHandleIncompleteNotes() { let source = "[Note]" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @Test func shouldHandleIncompleteGroups() { let source = "[Group]" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @Test func shouldHandleIncompleteNodesWithNoCoordinates() { let source = "I am a node? (" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @Test func shouldHandleIncompleteNodesWithIncompleteCoordinates() { let source = "I am a node? (12" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @Test func shouldHandleIncompleteNodesWithMissingYCoordinates() { let source = "I am a node? (12," - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @Test func shouldHandleIncompleteNodesWithUnclosedCoordinates() { let source = "I am a node? (12,21" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @Test func shouldHandleIncompleteEvolutionWithoutValue() { let source = "[Evolution] I accidentally a +" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @Test func shouldHandleIncompleteEvolutionWithoutComponent() { let source = "[Evolution]+" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @Test func shouldHandleJustAParenthesis() { let source = " (" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @@ -166,22 +166,22 @@ import Testing Hello -> It's OK [ """ - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 2) #expect( result.components.first - == Component( - label: "Hello", coordinates: MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle) + == WmapParser.Component( + label: "Hello", coordinates: WmapParser.MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle) ) #expect( result.components[1] - == Component( - label: "It's OK", coordinates: MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), shape: .circle) + == WmapParser.Component( + label: "It's OK", coordinates: WmapParser.MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), shape: .circle) ) #expect(result.dependencies.count == 1) #expect( result.dependencies.first - == Dependency(fromComponent: "Hello", toComponent: "It's OK", isDirected: true) + == WmapParser.Dependency(fromComponent: "Hello", toComponent: "It's OK", isDirected: true) ) } @@ -189,37 +189,37 @@ import Testing @Test func shouldHandleEmptyInput() { let source = "" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @Test func shouldHandleOnlyWhitespace() { let source = " \n \n " - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @Test func onlyLineBreaks() { let source = "\n" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @Test func shouldHandleOnlyInvalidLines() { let source = "invalid\nstill invalid" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 0) } @Test func shouldHandleComplexComponentLabels() { let source = "My Sü'per Complex Label 123 (0.5, 0.5)" - let result = parse(source) + let result = WmapParser.parse(source) #expect(result.components.count == 1) #expect( result.components.first - == Component( + == WmapParser.Component( label: "My Sü'per Complex Label 123", - coordinates: MapPoint(xCoordinate: 0.5, yCoordinate: 0.5), shape: .circle) + coordinates: WmapParser.MapPoint(xCoordinate: 0.5, yCoordinate: 0.5), shape: .circle) ) } @@ -248,7 +248,7 @@ import Testing [Evolution] Tea + 0.1 """ - let result = parse(source) + let result = WmapParser.parse(source) // 4 stages + 4 components + 3 dependencies + 1 note + 1 group + 1 inertia + 1 evolution #expect(result.stages.count == 4) @@ -259,54 +259,54 @@ import Testing #expect(result.inertias.count == 1) #expect(result.evolutions.count == 1) - #expect(result.stages.first == Stage(stage: .stageI, value: 0.25)) - #expect(result.stages[1] == Stage(stage: .stageII, value: 0.5)) - #expect(result.stages[2] == Stage(stage: .stageIII, value: 0.75)) - #expect(result.stages[3] == Stage(stage: .stageIV, value: 1.0)) + #expect(result.stages.first == WmapParser.Stage(stage: .stageI, value: 0.25)) + #expect(result.stages[1] == WmapParser.Stage(stage: .stageII, value: 0.5)) + #expect(result.stages[2] == WmapParser.Stage(stage: .stageIII, value: 0.75)) + #expect(result.stages[3] == WmapParser.Stage(stage: .stageIV, value: 1.0)) #expect( result.components.first - == Component( - label: "Tea", coordinates: MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle) + == WmapParser.Component( + label: "Tea", coordinates: WmapParser.MapPoint(xCoordinate: 0.9, yCoordinate: 0.5), shape: .circle) ) #expect( result.components[1] - == Component( - label: "Cup", coordinates: MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), shape: .circle) + == WmapParser.Component( + label: "Cup", coordinates: WmapParser.MapPoint(xCoordinate: 0.8, yCoordinate: 0.4), shape: .circle) ) #expect( result.components[2] - == Component( - label: "Kettle", coordinates: MapPoint(xCoordinate: 0.7, yCoordinate: 0.3), shape: .square) + == WmapParser.Component( + label: "Kettle", coordinates: WmapParser.MapPoint(xCoordinate: 0.7, yCoordinate: 0.3), shape: .square) ) #expect( result.components[3] - == Component( - label: "Hot Water", coordinates: MapPoint(xCoordinate: 0.6, yCoordinate: 0.2), + == WmapParser.Component( + label: "Hot Water", coordinates: WmapParser.MapPoint(xCoordinate: 0.6, yCoordinate: 0.2), shape: .circle) ) #expect( result.dependencies.first - == Dependency(fromComponent: "Tea", toComponent: "Cup", isDirected: true) + == WmapParser.Dependency(fromComponent: "Tea", toComponent: "Cup", isDirected: true) ) #expect( result.dependencies[1] - == Dependency(fromComponent: "Cup", toComponent: "Kettle", isDirected: true) + == WmapParser.Dependency(fromComponent: "Cup", toComponent: "Kettle", isDirected: true) ) #expect( result.dependencies[2] - == Dependency(fromComponent: "Kettle", toComponent: "Hot Water", isDirected: true) + == WmapParser.Dependency(fromComponent: "Kettle", toComponent: "Hot Water", isDirected: true) ) #expect( result.notes.first - == Note( + == WmapParser.Note( text: "This is our tea supply chain", - coordinates: MapPoint(xCoordinate: 0.5, yCoordinate: 0.5)) + coordinates: WmapParser.MapPoint(xCoordinate: 0.5, yCoordinate: 0.5)) ) #expect(result.groups.first?.components == ["Tea", "Cup", "Kettle"]) #expect(result.inertias.first?.component == "Kettle") - #expect(result.evolutions.first == Evolution(component: "Tea", value: 0.1)) + #expect(result.evolutions.first == WmapParser.Evolution(component: "Tea", value: 0.1)) } |