diff options
Diffstat (limited to 'tests/typ/library')
| -rw-r--r-- | tests/typ/library/box.typ | 20 | ||||
| -rw-r--r-- | tests/typ/library/font.typ | 56 | ||||
| -rw-r--r-- | tests/typ/library/hv.typ | 22 | ||||
| -rw-r--r-- | tests/typ/library/image.typ | 35 | ||||
| -rw-r--r-- | tests/typ/library/page.typ | 53 | ||||
| -rw-r--r-- | tests/typ/library/pagebreak.typ | 3 | ||||
| -rw-r--r-- | tests/typ/library/rgb.typ | 17 |
7 files changed, 206 insertions, 0 deletions
diff --git a/tests/typ/library/box.typ b/tests/typ/library/box.typ new file mode 100644 index 00000000..57763f12 --- /dev/null +++ b/tests/typ/library/box.typ @@ -0,0 +1,20 @@ +#page("a7", flip: true) + +// Box with fixed width, should have text height. +#box(width: 2cm, color: #9650D6)[A] + +Sometimes there is no box. + +// Box with fixed height, should span line. +#box(height: 2cm, width: 100%, color: #734CED)[B] + +// Empty box with fixed width and height. +#box(width: 6cm, height: 12pt, color: #CB4CED) + +// Not visiblem, but creates a gap between the boxes above and below. +#box(width: 2in, color: #ff0000) + +// These are in a row! +#box(width: 1in, height: 10pt, color: #D6CD67) +#box(width: 1in, height: 10pt, color: #EDD466) +#box(width: 1in, height: 10pt, color: #E3BE62) diff --git a/tests/typ/library/font.typ b/tests/typ/library/font.typ new file mode 100644 index 00000000..7f13e8a6 --- /dev/null +++ b/tests/typ/library/font.typ @@ -0,0 +1,56 @@ +// Test configuring font properties. + +#font("PT Sans", 10pt) + +// Set same font size in three different ways. +#font(20pt)[A] +#font(200%)[A] +#font(15pt + 50%)[A] + +// Do nothing. +#font[Normal] + +// Set style (is available). +#font(style: italic)[Italic] + +// Set weight (is available). +#font(weight: bold)[Bold] + +// Set stretch (not available, matching closest). +#font(stretch: ultra-condensed)[Condensed] + +// Error: 7-12 unexpected argument +#font(false) + +// Error: 3:14-3:18 expected font style, found font weight +// Error: 2:28-2:34 expected font weight, found string +// Error: 1:43-1:44 expected font family or array of font families, found integer +#font(style: bold, weight: "thin", serif: 0) + +// Warning: 15-19 should be between 100 and 900 +#font(weight: 2700) + +// Error: 7-27 unexpected argument +#font(something: "invalid") + +--- +// Test font fallback and class definitions. + +// Source Sans Pro + Segoe UI Emoji. +Emoji: 🏀 + +// CMU Serif + Noto Emoji. +#font("CMU Serif", "Noto Emoji")[ + Emoji: 🏀 +] + +// Class definitions. +#font(serif: ("CMU Serif", "Latin Modern Math", "Noto Emoji")) +#font(serif)[ + Math: ∫ α + β ➗ 3 +] + +// Class definition reused. +#font(sans-serif: "Noto Emoji") +#font(sans-serif: ("Archivo", sans-serif)) +New sans-serif. 🚀 diff --git a/tests/typ/library/hv.typ b/tests/typ/library/hv.typ new file mode 100644 index 00000000..154445cf --- /dev/null +++ b/tests/typ/library/hv.typ @@ -0,0 +1,22 @@ +// Ends paragraphs. +Tightly #v(-5pt) packed + +// Eating up soft spacing. +Inv #h(0pt) isible + +// Multiple spacings in a row. +Add #h(10pt) #h(10pt) up + +// Relative to font size. +Relative #h(100%) spacing + +// Missing spacing. +// Error: 12 missing argument: spacing +Totally #h() ignored + +// Swapped axes. +#page(main-dir: rtl, cross-dir: ttb, height: 80pt)[ + 1 #h(1cm) 2 + + 3 #v(1cm) 4 #v(-1cm) 5 +] diff --git a/tests/typ/library/image.typ b/tests/typ/library/image.typ new file mode 100644 index 00000000..9c3cd4fe --- /dev/null +++ b/tests/typ/library/image.typ @@ -0,0 +1,35 @@ +// Test loading different image formats. + +// Load an RGBA PNG image. +#image("res/rhino.png") +#pagebreak() + +// Load an RGB JPEG image. +#image("res/tiger.jpg") + +// Error: 8-29 failed to load image +#image("path/does/not/exist") + +// Error: 8-29 failed to load image +#image("typ/image-error.typ") + +--- +// Test configuring the size and fitting behaviour of images. + +// Fit to width of page. +#image("res/rhino.png") + +// Fit to height of page. +#page(height: 40pt, image("res/rhino.png")) + +// Set width explicitly. +#image("res/rhino.png", width: 50pt) + +// Set height explicitly. +#image("res/rhino.png", height: 50pt) + +// Set width and height explicitly and force stretching. +#image("res/rhino.png", width: 25pt, height: 50pt) + +// Make sure the bounding-box of the image is correct. +#align(bottom, right, image("res/tiger.jpg", width: 60pt)) diff --git a/tests/typ/library/page.typ b/tests/typ/library/page.typ new file mode 100644 index 00000000..b7ac0348 --- /dev/null +++ b/tests/typ/library/page.typ @@ -0,0 +1,53 @@ +// Test configuring page sizes and margins. + +// Set width and height. +#page(width: 120pt, height: 120pt) +#page(width: 40pt)[High] +#page(height: 40pt)[Wide] + +// Set all margins at once. +#page(margins: 30pt)[ + #align(top, left)[TL] + #align(bottom, right)[BR] +] + +// Set individual margins. +#page(height: 40pt) +#page(left: 0pt, align(left)[Left]) +#page(right: 0pt, align(right)[Right]) +#page(top: 0pt, align(top)[Top]) +#page(bottom: 0pt, align(bottom)[Bottom]) + +// Ensure that specific margins override general margins. +#page(margins: 0pt, left: 20pt)[Overriden] + +// Error: 7-18 unknown variable +#page(nonexistant) + +// Error: 17-20 aligned axis +#page(main-dir: ltr) + +// Flipped predefined paper. +#page("a11", flip: true)[Flipped A11] + +// Flipped custom page size. +#page(width: 40pt, height: 120pt) +#page(flip: true) +Wide + +// Test changing the layouting directions of pages. +#page(height: 50pt, main-dir: btt, cross-dir: rtl) +Right to left! + +--- +// Test a combination of pages with bodies and normal content. + +#page(height: 50pt) + +#page[First] +#page[Second] +#pagebreak() +Fourth +#page[] +Sixth +#page[Seventh and last] diff --git a/tests/typ/library/pagebreak.typ b/tests/typ/library/pagebreak.typ new file mode 100644 index 00000000..dc3e5682 --- /dev/null +++ b/tests/typ/library/pagebreak.typ @@ -0,0 +1,3 @@ +First of two +#pagebreak() +#page(height: 40pt) diff --git a/tests/typ/library/rgb.typ b/tests/typ/library/rgb.typ new file mode 100644 index 00000000..b962bbc0 --- /dev/null +++ b/tests/typ/library/rgb.typ @@ -0,0 +1,17 @@ +// Check the output. +#rgb(0.0, 0.3, 0.7) + +// Alpha channel. +#rgb(1.0, 0.0, 0.0, 0.5) + +// Warning: 2:6-2:9 should be between 0.0 and 1.0 +// Warning: 1:11-1:15 should be between 0.0 and 1.0 +#rgb(-30, 15.5, 0.5) + +// Error: 6-10 missing argument: blue component +#rgb(0, 1) + +// Error: 3:6-3:6 missing argument: red component +// Error: 2:6-2:6 missing argument: green component +// Error: 1:6-1:6 missing argument: blue component +#rgb() |
