minecraft - maps/decode_test.go
1 package maps
2
3 import (
4 "compress/gzip"
5 "fmt"
6 "image"
7 "image/png"
8 "io"
9 "os"
10 "testing"
11 )
12
13 func TestDecode(t *testing.T) {
14 f, err := os.Open("map_0.dat")
15 if err != nil {
16 t.Errorf("unexpected error: %s", err)
17 return
18 }
19 r, err := gzip.NewReader(f)
20 if err != nil {
21 t.Errorf("unexpected error: %s", err)
22 return
23 }
24 i, n, err := image.Decode(r)
25 r.Close()
26 f.Close()
27 if err != nil {
28 t.Errorf("unexpected error: %s", err)
29 return
30 } else if n != "minecraftmap" {
31 t.Errorf("expecting image type %q, got %q", "minecraftmap", n)
32 return
33 }
34 g, err := os.Create("t.png")
35 if err != nil {
36 t.Errorf("unexpected error: %s", err)
37 return
38 }
39 png.Encode(g, i)
40 g.Close()
41 }
42
43 func TestEncode(t *testing.T) {
44 f, err := os.Open("go.png")
45 if err != nil {
46 t.Errorf("unexpected error: %s", err)
47 return
48 }
49 im, _, err := image.Decode(f)
50 if err != nil {
51 t.Errorf("unexpected error: %s", err)
52 return
53 }
54 f.Close()
55 pr, pw := io.Pipe()
56 go Encode(pw, im)
57 im, _, err = image.Decode(pr)
58 if err != nil {
59 t.Errorf("unexpected error: %s", err)
60 return
61 }
62 g, err := os.Create("got.png")
63 if err != nil {
64 t.Errorf("unexpected error: %s", err)
65 return
66 }
67 png.Encode(g, im)
68 g.Close()
69 }
70
71 func TestConfig(t *testing.T) {
72 f, err := os.Open("map_0.dat")
73 if err != nil {
74 t.Errorf("unexpected error: %s", err)
75 return
76 }
77 r, err := gzip.NewReader(f)
78 if err != nil {
79 t.Errorf("unexpected error: %s", err)
80 return
81 }
82 c, n, err := image.DecodeConfig(r)
83 r.Close()
84 f.Close()
85 if err != nil {
86 t.Errorf("unexpected error: %s", err)
87 return
88 } else if n != "minecraftmap" {
89 t.Errorf("expecting image type %q, got %q", "minecraftmap", n)
90 return
91 }
92 fmt.Println(c)
93 }
94