diff options
Diffstat (limited to 'vendor/golang.org/x/image/font/opentype/face_test.go')
-rw-r--r-- | vendor/golang.org/x/image/font/opentype/face_test.go | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/vendor/golang.org/x/image/font/opentype/face_test.go b/vendor/golang.org/x/image/font/opentype/face_test.go new file mode 100644 index 000000000..224b0f2fa --- /dev/null +++ b/vendor/golang.org/x/image/font/opentype/face_test.go @@ -0,0 +1,90 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package opentype + +import ( + "testing" + + "golang.org/x/image/font" + "golang.org/x/image/font/gofont/goregular" + "golang.org/x/image/font/sfnt" + "golang.org/x/image/math/fixed" +) + +var ( + regular font.Face +) + +func init() { + font, err := sfnt.Parse(goregular.TTF) + if err != nil { + panic(err) + } + + regular, err = NewFace(font, defaultFaceOptions()) + if err != nil { + panic(err) + } +} + +func TestFaceGlyphAdvance(t *testing.T) { + for _, test := range []struct { + r rune + want fixed.Int26_6 + }{ + {' ', 213}, + {'A', 512}, + {'Á', 512}, + {'Æ', 768}, + {'i', 189}, + {'x', 384}, + } { + got, ok := regular.GlyphAdvance(test.r) + if !ok { + t.Errorf("could not get glyph advance width for %q", test.r) + continue + } + + if got != test.want { + t.Errorf("%q: glyph advance width=%d. want=%d", test.r, got, test.want) + continue + } + } +} + +func TestFaceKern(t *testing.T) { + // FIXME(sbinet) there is no kerning with gofont/goregular + for _, test := range []struct { + r1, r2 rune + want fixed.Int26_6 + }{ + {'A', 'A', 0}, + {'A', 'V', 0}, + {'V', 'A', 0}, + {'A', 'v', 0}, + {'W', 'a', 0}, + {'W', 'i', 0}, + {'Y', 'i', 0}, + {'f', '(', 0}, + {'f', 'f', 0}, + {'f', 'i', 0}, + {'T', 'a', 0}, + {'T', 'e', 0}, + } { + got := regular.Kern(test.r1, test.r2) + if got != test.want { + t.Errorf("(%q, %q): glyph kerning=%d. want=%d", test.r1, test.r2, got, test.want) + continue + } + } +} + +func TestFaceMetrics(t *testing.T) { + want := font.Metrics{Height: 768, Ascent: 726, Descent: 162} + got := regular.Metrics() + if got != want { + t.Fatalf("metrics failed. got=%#v. want=%#v", got, want) + } +} |