kopia lustrzana https://github.com/onthegomap/planetiler
100 wiersze
3.2 KiB
Java
100 wiersze
3.2 KiB
Java
package com.onthegomap.planetiler.util;
|
|
|
|
import static com.onthegomap.planetiler.TestUtils.newPoint;
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
|
import com.onthegomap.planetiler.VectorTile;
|
|
import com.onthegomap.planetiler.geo.TileCoord;
|
|
import java.io.IOException;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
class TileSizeStatsTest {
|
|
@Test
|
|
void computeStatsEmpty() {
|
|
var stats = TileSizeStats.computeTileStats(new VectorTile().toProto());
|
|
assertEquals(0, stats.size());
|
|
}
|
|
|
|
@Test
|
|
void computeStatsOneFeature() throws IOException {
|
|
var stats = TileSizeStats.computeTileStats(new VectorTile()
|
|
.addLayerFeatures("layer", List.of(new VectorTile.Feature(
|
|
"layer",
|
|
1,
|
|
VectorTile.encodeGeometry(newPoint(0, 0)),
|
|
Map.of("key1", "value1", "key2", 2)
|
|
)))
|
|
.toProto());
|
|
assertEquals(1, stats.size());
|
|
var entry1 = stats.get(0);
|
|
assertEquals("layer", entry1.layer());
|
|
assertEquals(1, entry1.layerFeatures());
|
|
assertEquals(55, entry1.layerBytes());
|
|
|
|
assertEquals(18, entry1.layerAttrBytes());
|
|
assertEquals(2, entry1.layerAttrKeys());
|
|
assertEquals(2, entry1.layerAttrValues());
|
|
|
|
var formatted = TileSizeStats.formatOutputRows(TileCoord.ofXYZ(1, 2, 3), 999, stats);
|
|
assertEquals(
|
|
"""
|
|
z x y hilbert archived_tile_bytes layer layer_bytes layer_features layer_geometries layer_attr_bytes layer_attr_keys layer_attr_values
|
|
3 1 2 34 999 layer 55 1 1 18 2 2
|
|
"""
|
|
.trim(),
|
|
(TileSizeStats.headerRow() + String.join("", formatted)).trim());
|
|
}
|
|
|
|
@Test
|
|
void computeStats2Features() throws IOException {
|
|
var stats = TileSizeStats.computeTileStats(new VectorTile()
|
|
.addLayerFeatures("b", List.of(
|
|
new VectorTile.Feature(
|
|
"b",
|
|
1,
|
|
VectorTile.encodeGeometry(newPoint(0, 0)),
|
|
Map.of()
|
|
)
|
|
))
|
|
.addLayerFeatures("a", List.of(
|
|
new VectorTile.Feature(
|
|
"a",
|
|
1,
|
|
VectorTile.encodeGeometry(newPoint(0, 0)),
|
|
Map.of("key1", "value1", "key2", 2)
|
|
),
|
|
new VectorTile.Feature(
|
|
"a",
|
|
2,
|
|
VectorTile.encodeGeometry(newPoint(1, 1)),
|
|
Map.of("key1", 2, "key2", 3)
|
|
)
|
|
))
|
|
.toProto());
|
|
assertEquals(2, stats.size());
|
|
var entry1 = stats.get(0);
|
|
assertEquals("a", entry1.layer());
|
|
assertEquals(2, entry1.layerFeatures());
|
|
assertEquals(72, entry1.layerBytes());
|
|
|
|
assertEquals(20, entry1.layerAttrBytes());
|
|
assertEquals(2, entry1.layerAttrKeys());
|
|
assertEquals(3, entry1.layerAttrValues());
|
|
var entry2 = stats.get(1);
|
|
assertEquals("b", entry2.layer());
|
|
assertEquals(1, entry2.layerFeatures());
|
|
|
|
var formatted = TileSizeStats.formatOutputRows(TileCoord.ofXYZ(1, 2, 3), 999, stats);
|
|
assertEquals(
|
|
"""
|
|
z x y hilbert archived_tile_bytes layer layer_bytes layer_features layer_geometries layer_attr_bytes layer_attr_keys layer_attr_values
|
|
3 1 2 34 999 a 72 2 2 20 2 3
|
|
3 1 2 34 999 b 19 1 1 0 0 0
|
|
"""
|
|
.trim(),
|
|
(TileSizeStats.headerRow() + String.join("", formatted)).trim());
|
|
}
|
|
}
|