-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathtileset_test.go
98 lines (94 loc) · 1.86 KB
/
tileset_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
package main
import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"testing"
)
func TestBuildTilesetStructure(t *testing.T) {
files := []string{
"5/15/19.png",
"5/16/19.png",
"6/31/38.png",
"6/32/38.png",
"7/63/77.png",
"7/64/77.png",
"8/127/154.png",
"8/127/155.png",
"8/128/154.png",
"8/128/155.png",
"9/254/309.png",
"9/254/310.png",
"9/255/309.png",
"9/255/310.png",
"9/255/311.png",
"9/256/309.png",
"9/256/310.png",
"9/256/311.png",
}
tileset := TilesetDescriptor{}
err := buildTilesetStructure(files, &tileset)
require.NoError(t, err)
require.Len(t, tileset.Tiles, 5)
// Zoom 5
tiles := tileset.Tiles[5]
assert.Len(t, tiles, 2)
// Zoom 6
tiles = tileset.Tiles[6]
assert.Len(t, tiles, 2)
// Zoom 7
tiles = tileset.Tiles[7]
assert.Len(t, tiles, 2)
// Zoom 8
tiles = tileset.Tiles[8]
assert.Len(t, tiles, 4)
// Zoom 9
tiles = tileset.Tiles[9]
assert.Len(t, tiles, 8)
}
func TestBuildTilesetStructureMinMax(t *testing.T) {
files := []string{
"5/15/19.png",
"5/16/19.png",
"6/31/38.png",
"6/32/38.png",
"7/63/77.png",
"7/64/77.png",
"8/127/154.png",
"8/127/155.png",
"8/128/154.png",
"8/128/155.png",
"9/254/309.png",
"9/254/310.png",
"9/255/309.png",
"9/255/310.png",
"9/255/311.png",
"9/256/309.png",
"9/256/310.png",
"9/256/311.png",
}
tileset := TilesetDescriptor{
MinZ: 7,
MaxZ: 8,
}
err := buildTilesetStructure(files, &tileset)
require.NoError(t, err)
require.Len(t, tileset.Tiles, 2)
// Zoom 7
tiles := tileset.Tiles[7]
assert.Len(t, tiles, 2)
// Zoom 8
tiles = tileset.Tiles[8]
assert.Len(t, tiles, 4)
}
func TestBuildTilesetStructureInvalid(t *testing.T) {
files := []string{
"6/",
"6/31/",
"6/31/38.png",
"6/32/",
"6/32/38.png",
}
tileset := TilesetDescriptor{}
err := buildTilesetStructure(files, &tileset)
require.Error(t, err)
}