diff options
| author | Ruben Beltran del Rio <jj@r.bdr.sh> | 2026-06-15 14:35:36 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <jj@r.bdr.sh> | 2026-06-16 14:47:30 +0200 |
| commit | 657aa83a5ca24dc35572c040df64a0abb85e8612 (patch) | |
| tree | fe0b6fd425d8cad9dc6a28ada4ad8600e42b367e /Tests/NorgUITests/OrdinalTests.swift | |
Initial extraction from Norganize
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]) + } +} |