From 020294fca9a7065d4b9cf4e677f606ebaaa29b00 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sat, 13 Apr 2024 10:39:45 +0200 Subject: Better test runner (#3922) --- tests/typ/compiler/spread.typ | 133 ------------------------------------------ 1 file changed, 133 deletions(-) delete mode 100644 tests/typ/compiler/spread.typ (limited to 'tests/typ/compiler/spread.typ') diff --git a/tests/typ/compiler/spread.typ b/tests/typ/compiler/spread.typ deleted file mode 100644 index db658453..00000000 --- a/tests/typ/compiler/spread.typ +++ /dev/null @@ -1,133 +0,0 @@ -// Test argument sinks and spreading. -// Ref: false - ---- -// Test standard argument overriding. -#{ - let f(style: "normal", weight: "regular") = { - "(style: " + style + ", weight: " + weight + ")" - } - - let myf(..args) = f(weight: "bold", ..args) - test(myf(), "(style: normal, weight: bold)") - test(myf(weight: "black"), "(style: normal, weight: black)") - test(myf(style: "italic"), "(style: italic, weight: bold)") -} - ---- -// Test multiple calls. -#{ - let f(b, c: "!") = b + c - let g(a, ..sink) = a + f(..sink) - test(g("a", "b", c: "c"), "abc") -} - ---- -// Test doing things with arguments. -#{ - let save(..args) = { - test(type(args), arguments) - test(repr(args), "(three: true, 1, 2)") - } - - save(1, 2, three: true) -} - ---- -// Test spreading array and dictionary. -#{ - let more = (3, -3, 6, 10) - test(calc.min(1, 2, ..more), -3) - test(calc.max(..more, 9), 10) - test(calc.max(..more, 11), 11) -} - -#{ - let more = (c: 3, d: 4) - let tostr(..args) = repr(args) - test(tostr(a: 1, ..more, b: 2), "(a: 1, c: 3, d: 4, b: 2)") -} - ---- -// None is spreadable. -#let f() = none -#f(..none) -#f(..if false {}) -#f(..for x in () []) - ---- -// unnamed spread -#let f(.., a) = a -#test(f(1, 2, 3), 3) - ---- -// Error: 11-19 cannot spread string -#calc.min(.."nope") - ---- -// Error: 10-14 expected pattern, found boolean -#let f(..true) = none - ---- -// Error: 13-16 only one argument sink is allowed -#let f(..a, ..b) = none - ---- -// Test spreading into array and dictionary. -#{ - let l = (1, 2, 3) - let r = (5, 6, 7) - test((..l, 4, ..r), range(1, 8)) - test((..none), ()) -} - -#{ - let x = (a: 1) - let y = (b: 2) - let z = (a: 3) - test((:..x, ..y, ..z), (a: 3, b: 2)) - test((..(a: 1), b: 2), (a: 1, b: 2)) -} - ---- -// Error: 9-17 cannot spread dictionary into array -#(1, 2, ..(a: 1)) - ---- -// Error: 3-11 cannot spread array into dictionary -#(..(1, 2), a: 1) - ---- -// Spread at beginning. -#{ - let f(..a, b) = (a, b) - test(repr(f(1)), "((), 1)") - test(repr(f(1, 2, 3)), "((1, 2), 3)") - test(repr(f(1, 2, 3, 4, 5)), "((1, 2, 3, 4), 5)") -} - ---- -// Spread in the middle. -#{ - let f(a, ..b, c) = (a, b, c) - test(repr(f(1, 2)), "(1, (), 2)") - test(repr(f(1, 2, 3, 4, 5)), "(1, (2, 3, 4), 5)") -} - ---- -// Unnamed sink should just ignore any extra arguments. -#{ - let f(a, b: 5, ..) = (a, b) - test(f(4), (4, 5)) - test(f(10, b: 11), (10, 11)) - test(f(13, 20, b: 12), (13, 12)) - test(f(15, b: 16, c: 13), (15, 16)) -} - ---- -#{ - let f(..a, b, c, d) = none - - // Error: 3-10 missing argument: d - f(1, 2) -} -- cgit v1.2.3