1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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])
}
}
|