diff options
Diffstat (limited to 'Tests/NorgUITests/OrdinalTests.swift')
| -rw-r--r-- | Tests/NorgUITests/OrdinalTests.swift | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Tests/NorgUITests/OrdinalTests.swift b/Tests/NorgUITests/OrdinalTests.swift new file mode 100644 index 0000000..954477c --- /dev/null +++ b/Tests/NorgUITests/OrdinalTests.swift @@ -0,0 +1,38 @@ +import NorgKit +import Testing + +@testable import NorgUI + +@Suite struct OrdinalTests { + private func ordered(_ level: Int) -> NorgBlock { + .orderedListItem(level: level, status: nil, content: [], line: 0) + } + private func unordered(_ level: Int) -> NorgBlock { + .unorderedListItem(level: level, status: nil, content: [], line: 0) + } + private var paragraph: NorgBlock { .paragraph(content: [], line: 0) } + + @Test func numbersConsecutiveItems() { + #expect(orderedOrdinals([ordered(1), ordered(1), ordered(1)]) == [1, 2, 3]) + } + + @Test func countsEachLevelIndependently() { + let blocks = [ordered(1), ordered(2), ordered(2), ordered(1)] + #expect(orderedOrdinals(blocks) == [1, 1, 2, 2]) + } + + @Test func paragraphResetsNumbering() { + let blocks = [ordered(1), paragraph, ordered(1)] + #expect(orderedOrdinals(blocks) == [1, nil, 1]) + } + + @Test func unorderedItemInterruptsNumbering() { + let blocks = [ordered(1), unordered(1), ordered(1)] + #expect(orderedOrdinals(blocks) == [1, nil, 1]) + } + + @Test func siblingOrdinalsNumberOrderedNodesOnly() { + let nodes = [ordered(1), unordered(1), ordered(1), paragraph].map { NorgNode(block: $0) } + #expect(ordinals(forSiblings: nodes) == [1, nil, 2, nil]) + } +} |