summaryrefslogtreecommitdiff
path: root/tests/suite/model/numbering.typ
diff options
context:
space:
mode:
Diffstat (limited to 'tests/suite/model/numbering.typ')
-rw-r--r--tests/suite/model/numbering.typ166
1 files changed, 52 insertions, 114 deletions
diff --git a/tests/suite/model/numbering.typ b/tests/suite/model/numbering.typ
index 55c24f65..93c9e1b3 100644
--- a/tests/suite/model/numbering.typ
+++ b/tests/suite/model/numbering.typ
@@ -1,120 +1,58 @@
// Test integrated numbering patterns.
---- numbering-symbol-and-roman ---
-#for i in range(0, 9) {
- numbering("*", i)
- [ and ]
- numbering("I.a", i, i)
- [ for #i \ ]
-}
-
---- numbering-latin ---
-#for i in range(0, 4) {
- numbering("A", i)
- [ for #i \ ]
-}
-... \
-#for i in range(26, 30) {
- numbering("A", i)
- [ for #i \ ]
-}
-... \
-#for i in range(702, 706) {
- numbering("A", i)
- [ for #i \ ]
-}
-
---- numbering-hebrew ---
-#set text(lang: "he")
-#for i in range(9, 21, step: 2) {
- numbering("א.", i)
- [ עבור #i \ ]
-}
-
---- numbering-chinese ---
-#set text(lang: "zh", font: ("Linux Libertine", "Noto Serif CJK SC"))
-#for i in range(9, 21, step: 2){
- numbering("一", i)
- [ and ]
- numbering("壹", i)
- [ for #i \ ]
-}
-
---- numbering-japanese-iroha ---
-#set text(lang: "ja", font: ("Linux Libertine", "Noto Serif CJK JP"))
-#for i in range(0, 4) {
- numbering("イ", i)
- [ (or ]
- numbering("い", i)
- [) for #i \ ]
-}
-... \
-#for i in range(47, 51) {
- numbering("イ", i)
- [ (or ]
- numbering("い", i)
- [) for #i \ ]
-}
-... \
-#for i in range(2256, 2260) {
- numbering("イ", i)
- [ for #i \ ]
-}
-
---- numbering-korean ---
-#set text(lang: "ko", font: ("Linux Libertine", "Noto Serif CJK KR"))
-#for i in range(0, 4) {
- numbering("가", i)
- [ (or ]
- numbering("ㄱ", i)
- [) for #i \ ]
-}
-... \
-#for i in range(47, 51) {
- numbering("가", i)
- [ (or ]
- numbering("ㄱ", i)
- [) for #i \ ]
-}
-... \
-#for i in range(2256, 2260) {
- numbering("ㄱ", i)
- [ for #i \ ]
-}
-
---- numbering-japanese-aiueo ---
-#set text(lang: "jp", font: ("Linux Libertine", "Noto Serif CJK JP"))
-#for i in range(0, 9) {
- numbering("あ", i)
- [ and ]
- numbering("I.あ", i, i)
- [ for #i \ ]
-}
-
-#for i in range(0, 9) {
- numbering("ア", i)
- [ and ]
- numbering("I.ア", i, i)
- [ for #i \ ]
-}
-
---- numbering-arabic-indic ---
-#assert.eq(numbering("\u{0661}", 1475), "١٤٧٥")
-#assert.eq(numbering("\u{06F1}", 1475), "۱۴۷۵")
-
---- numbering-devanagari-number ---
-#assert.eq(numbering("\u{0967}", 1), "१")
-#assert.eq(numbering("\u{0967}", 10), "१०")
-#assert.eq(numbering("\u{0967}", 123456789), "१२३४५६७८९")
+--- numbering ---
+#let t(pat: "1", step: 1, ..vals) = {
+ let num = 0
+ for val in vals.pos() {
+ if type(val) == int {
+ num = val
+ } else {
+ test(numbering(pat, num), val)
+ num += step
+ }
+ }
+}
+
+// Arabic.
+#t(pat: "1", "0", "1", "2", "3", "4", "5", "6", 107, "107", "108")
+
+// Symbols.
+#t(pat: "*", "-", "*", "†", "‡", "§", "¶", "‖", "**")
+
+// Hebrew.
+#t(pat: "א", step: 2, 9, "ט׳", "י״א", "י״ג")
+
+// Chinese.
+#t(pat: "一", step: 2, 9, "九", "十一", "十三", "十五", "十七", "十九")
+#t(pat: "壹", step: 2, 9, "玖", "拾壹", "拾叁", "拾伍", "拾柒", "拾玖")
+
+// Japanese.
+#t(pat: "イ", "-", "イ", "ロ", "ハ", 47, "ス", "イイ", "イロ", "イハ", 2256, "スス", "イイイ")
+#t(pat: "い", "-", "い", "ろ", "は", 47, "す", "いい", "いろ", "いは")
+#t(pat: "あ", "-", "あ", "い", "う", "え", "お", "か", "き", "く")
+#t(pat: "ア", "-", "ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク")
+
+// Korean.
+#t(pat: "가", "-", "가", "나", "다", 47, "다마", "다바", "다사", "다아")
+#t(pat: "ㄱ", "-", "ㄱ", "ㄴ", "ㄷ", 47, "ㄷㅁ")
+
+// Arabic Indic.
+#t(pat: "\u{0661}", 1475, "١٤٧٥")
+#t(pat: "\u{06F1}", 1475, "۱۴۷۵")
+
+// Devanagari.
+#t(pat: "\u{0967}", 1, "१")
+#t(pat: "\u{0967}", 10, "१०")
+#t(pat: "\u{0967}", 123456789, "१२३४५६७८९")
+
+// Circled number.
+#t(pat: "①", 1, "①")
+#t(pat: "①", 50, "㊿")
+
+// Double-circled number.
+#t(pat: "⓵", 1, "⓵")
+#t(pat: "⓵", 10, "⓾")
--- numbering-negative ---
// Error: 17-19 number must be at least zero
#numbering("1", -1)
-
---- numbering-circled-number ---
-#assert.eq(numbering("①", 1), "①")
-#assert.eq(numbering("①", 50), "㊿")
-
---- numbering-double-circled-number ---
-#assert.eq(numbering("⓵", 1), "⓵")
-#assert.eq(numbering("⓵", 10), "⓾")