Skip to content

Commit 3e7c6c1

Browse files
committed
test: add picofont unit tests
1 parent 32526fc commit 3e7c6c1

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

picofont/picofont_test.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
// Copyright 2025 Jacek Olszak
2+
// This code is licensed under MIT license (see LICENSE for details)
3+
4+
package picofont_test
5+
6+
import (
7+
_ "embed"
8+
"strings"
9+
"testing"
10+
11+
"github.com/elgopher/pi"
12+
"github.com/elgopher/pi/picofont"
13+
"github.com/elgopher/pi/pitest"
14+
)
15+
16+
//go:embed "font.png"
17+
var fontPNG []byte
18+
19+
func TestPrint(t *testing.T) {
20+
t.Run("should print each character", func(t *testing.T) {
21+
pi.SetScreenSize(128, 128)
22+
23+
pi.Palette = pi.DecodePalette(fontPNG)
24+
canvas := pi.DecodeCanvas(fontPNG)
25+
26+
var table strings.Builder
27+
28+
// print narrow characters
29+
for i := 16; i < 128; i++ { // skip escape codes below 16 (such as LF)
30+
table.WriteRune(rune(i))
31+
table.WriteByte(' ')
32+
if i%16 == 15 {
33+
table.WriteByte('\n')
34+
}
35+
}
36+
// print wide characters
37+
for i := 128; i < 256; i++ {
38+
table.WriteRune(rune(i))
39+
if i%16 == 15 {
40+
table.WriteByte('\n')
41+
}
42+
}
43+
pi.SetColor(1)
44+
// when
45+
picofont.Print(table.String(), 0, 8)
46+
// then
47+
pitest.AssertSurfaceEqual(t, canvas, pi.Screen())
48+
})
49+
}

0 commit comments

Comments
 (0)