-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathresize_test.go
101 lines (93 loc) · 2.81 KB
/
resize_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package mergi_test
import (
"github.com/noelyahan/mergi"
"github.com/noelyahan/impexp"
"image"
"log"
"testing"
)
func TestResizeWithNil(t *testing.T) {
mergi.Resize(nil, 100, 100)
}
func TestResizeScaleDown(t *testing.T) {
img, _ := mergi.Import(impexp.NewFileImporter("./testdata/hedgehog-child-3636026_960_720.jpg"))
w := uint(img.Bounds().Max.X / 2)
h := uint(img.Bounds().Max.Y / 2)
res, err := mergi.Resize(img, w, h)
if err != nil {
log.Fatalf("failed to resize: %s", err)
}
b := res.Bounds().Max
if b.X != int(w) || b.Y != int(h) {
t.Errorf("Expected [width %d, height %d] got [width %d, height %d]",
w, h, b.X, b.Y)
}
mergi.Export(impexp.NewFileExporter(res, "out.png"))
}
func TestResizeScaleUp(t *testing.T) {
img, _ := mergi.Import(impexp.NewFileImporter("./testdata/hedgehog-child-3636026_960_720.jpg"))
w := uint(img.Bounds().Max.X * 2)
h := uint(img.Bounds().Max.Y * 2)
res, err := mergi.Resize(img, w, h)
if err != nil {
log.Fatalf("failed to resize: %s", err)
}
b := res.Bounds().Max
if b.X != int(w) || b.Y != int(h) {
t.Errorf("Expected [width %d, height %d] got [width %d, height %d]",
w, h, b.X, b.Y)
}
mergi.Export(impexp.NewFileExporter(res, "out.png"))
}
func TestMergeScaleDown(t *testing.T) {
template := "TT"
img1, _ := mergi.Import(impexp.NewFileImporter("./testdata/cherry-3074284_960_720.jpg"))
img2, _ := mergi.Import(impexp.NewFileImporter("./testdata/avocado-3210885_960_720.jpg"))
imgs := []image.Image{img1, img2}
img, err := mergi.Merge(template, imgs)
if err != nil {
log.Fatalf("failed to merge: %s", err)
}
if img == nil {
t.Errorf("Expected a image, got [%v]", img)
return
}
w := uint(img.Bounds().Max.X / 2)
h := uint(img.Bounds().Max.Y / 2)
res, err := mergi.Resize(img, w, h)
if err != nil {
log.Fatalf("failed to resize: %s", err)
}
b := res.Bounds().Max
if b.X != int(w) || b.Y != int(h) {
t.Errorf("Expected [width %d, height %d] got [width %d, height %d]",
w, h, b.X, b.Y)
}
mergi.Export(impexp.NewFileExporter(res, "out.png"))
}
func TestMergeScaleUp(t *testing.T) {
template := "TB"
img1, _ := mergi.Import(impexp.NewFileImporter("./testdata/cherry-3074284_960_720.jpg"))
img2, _ := mergi.Import(impexp.NewFileImporter("./testdata/avocado-3210885_960_720.jpg"))
imgs := []image.Image{img1, img2}
img, err := mergi.Merge(template, imgs)
if err != nil {
log.Fatalf("failed to merge: %s", err)
}
if img == nil {
t.Errorf("Expected a image, got [%v]", img)
return
}
w := uint(img.Bounds().Max.X * 2)
h := uint(img.Bounds().Max.Y * 2)
res, err := mergi.Resize(img, w, h)
if err != nil {
log.Fatalf("failed to resize: %s", err)
}
b := res.Bounds().Max
if b.X != int(w) || b.Y != int(h) {
t.Errorf("Expected [width %d, height %d] got [width %d, height %d]",
w, h, b.X, b.Y)
}
mergi.Export(impexp.NewFileExporter(res, "out.png"))
}