summaryrefslogtreecommitdiff
path: root/tests/suite/layout/length.typ
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2024-04-13 10:39:45 +0200
committerGitHub <noreply@github.com>2024-04-13 08:39:45 +0000
commit020294fca9a7065d4b9cf4e677f606ebaaa29b00 (patch)
treec0027ad22046e2726c22298461327823d6b88d53 /tests/suite/layout/length.typ
parent72dd79210602ecc799726fc096b078afbb47f299 (diff)
Better test runner (#3922)
Diffstat (limited to 'tests/suite/layout/length.typ')
-rw-r--r--tests/suite/layout/length.typ69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/suite/layout/length.typ b/tests/suite/layout/length.typ
new file mode 100644
index 00000000..68755619
--- /dev/null
+++ b/tests/suite/layout/length.typ
@@ -0,0 +1,69 @@
+--- length-fields ---
+// Test length fields.
+#test((1pt).em, 0.0)
+#test((1pt).abs, 1pt)
+#test((3em).em, 3.0)
+#test((3em).abs, 0pt)
+#test((2em + 2pt).em, 2.0)
+#test((2em + 2pt).abs, 2pt)
+
+--- length-to-unit ---
+// Test length unit conversions.
+#test((500.934pt).pt(), 500.934)
+#test((3.3453cm).cm(), 3.3453)
+#test((4.3452mm).mm(), 4.3452)
+#test((5.345in).inches(), 5.345)
+#test((500.333666999pt).pt(), 500.333666999)
+#test((3.5234354cm).cm(), 3.5234354)
+#test((4.12345678mm).mm(), 4.12345678)
+#test((5.333666999in).inches(), 5.333666999)
+#test((4.123456789123456mm).mm(), 4.123456789123456)
+#test((254cm).mm(), 2540.0)
+#test(calc.round((254cm).inches(), digits: 2), 100.0)
+#test((2540mm).cm(), 254.0)
+#test(calc.round((2540mm).inches(), digits: 2), 100.0)
+#test((100in).pt(), 7200.0)
+#test(calc.round((100in).cm(), digits: 2), 254.0)
+#test(calc.round((100in).mm(), digits: 2), 2540.0)
+#test(5em.abs.cm(), 0.0)
+#test((5em + 6in).abs.inches(), 6.0)
+
+--- length-to-absolute ---
+// Test length `to-absolute` method.
+#set text(size: 12pt)
+#context {
+ test((6pt).to-absolute(), 6pt)
+ test((6pt + 10em).to-absolute(), 126pt)
+ test((10em).to-absolute(), 120pt)
+}
+
+#set text(size: 64pt)
+#context {
+ test((6pt).to-absolute(), 6pt)
+ test((6pt + 10em).to-absolute(), 646pt)
+ test((10em).to-absolute(), 640pt)
+}
+
+--- length-unit-hint ---
+// Error: 1:17-1:19 expected length, found integer: a length needs a unit - did you mean 12pt?
+#set text(size: 12)
+
+--- length-ignore-em-pt-hint ---
+// Error: 2-21 cannot convert a length with non-zero em units (`-6pt + 10.5em`) to pt
+// Hint: 2-21 use `length.abs.pt()` instead to ignore its em component
+#(10.5em - 6pt).pt()
+
+--- length-ignore-em-cm-hint ---
+// Error: 2-12 cannot convert a length with non-zero em units (`3em`) to cm
+// Hint: 2-12 use `length.abs.cm()` instead to ignore its em component
+#(3em).cm()
+
+--- length-ignore-em-mm-hint ---
+// Error: 2-20 cannot convert a length with non-zero em units (`-226.77pt + 93em`) to mm
+// Hint: 2-20 use `length.abs.mm()` instead to ignore its em component
+#(93em - 80mm).mm()
+
+--- length-ignore-em-inches-hint ---
+// Error: 2-24 cannot convert a length with non-zero em units (`432pt + 4.5em`) to inches
+// Hint: 2-24 use `length.abs.inches()` instead to ignore its em component
+#(4.5em + 6in).inches()