From 657aa83a5ca24dc35572c040df64a0abb85e8612 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Mon, 15 Jun 2026 14:35:36 +0200 Subject: Initial extraction from Norganize --- Tests/NorgUITests/OrdinalTests.swift | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Tests/NorgUITests/OrdinalTests.swift (limited to 'Tests/NorgUITests/OrdinalTests.swift') 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]) + } +} -- cgit