working tests

This commit is contained in:
NatureFreshMilk 2019-02-14 08:50:54 +01:00
parent 0e169d2b45
commit c80a9140e9
13 changed files with 26 additions and 73 deletions

View File

@ -16,7 +16,7 @@ func TestMinCoord(t *testing.T){
c := NewMapBlockCoords(MinCoord, MinCoord, MinCoord)
pc := CoordToPlain(c)
log.WithFields(logrus.Fields{"coords": c, "plain": pc}).Info("TestMinCoord")
log.WithFields(logrus.Fields{"coords": c, "plain": pc,"plain-1": pc-1}).Info("TestMinCoord")
if pc != MinPlainCoord {
t.Fatal("no min match")
}

View File

@ -9,7 +9,7 @@ const (
MAX_ZOOM = 13
)
func GetTileCoordsFromMapBlock(mbc *MapBlockCoords, layers []layer.Layer) *TileCoords {
func GetTileCoordsFromMapBlock(mbc *MapBlockCoords, layers []*layer.Layer) *TileCoords {
tc := TileCoords{X: mbc.X, Y: (mbc.Z + 1) * -1, Zoom: MAX_ZOOM}
var layerid *int

View File

@ -8,8 +8,8 @@ import (
func TestConvertMapblockToTile1(t *testing.T) {
mbc := NewMapBlockCoords(0, 0, 0)
layers := []layer.Layer{
layer.Layer{
layers := []*layer.Layer{
&layer.Layer{
Id: 0,
Name: "Base",
From: -16,
@ -48,8 +48,8 @@ func TestGetMapBlockRangeFromTile(t *testing.T) {
func TestConvertMapblockToTile2(t *testing.T) {
mbc := NewMapBlockCoords(1, 0, 1)
layers := []layer.Layer{
layer.Layer{
layers := []*layer.Layer{
&layer.Layer{
Id: 0,
Name: "Base",
From: -16,
@ -74,8 +74,8 @@ func TestConvertMapblockToTile2(t *testing.T) {
func TestConvertMapblockToTile3(t *testing.T) {
mbc := NewMapBlockCoords(-1, 0, -1)
layers := []layer.Layer{
layer.Layer{
layers := []*layer.Layer{
&layer.Layer{
Id: 0,
Name: "Base",
From: -16,

View File

@ -22,7 +22,7 @@ type DBAccessor interface {
Migrate() error
FindBlocksByMtime(gtmtime int64, limit int) ([]*Block, error)
FindNextInitialBlocks(s settings.Settings, layers []layer.Layer, limit int) (*InitialBlocksResult, error)
FindNextInitialBlocks(s settings.Settings, layers []*layer.Layer, limit int) (*InitialBlocksResult, error)
CountBlocks(frommtime, tomtime int64) (int, error)
GetBlock(pos *coords.MapBlockCoords) (*Block, error)

View File

@ -16,7 +16,7 @@ const getLastBlockQuery = `
select pos,data,mtime
from blocks b
where b.mtime = 0
and b.pos >= ?
and b.pos > ?
order by b.pos asc, b.mtime asc
limit ?
`
@ -27,7 +27,7 @@ func (this *Sqlite3Accessor) FindNextInitialBlocks(s settings.Settings, layers [
blocks := make([]*db.Block, 0)
lastpos := s.GetInt64(SETTING_LAST_POS, coords.MinPlainCoord)
lastpos := s.GetInt64(SETTING_LAST_POS, coords.MinPlainCoord-1)
rows, err := this.db.Query(getLastBlockQuery, lastpos, limit)
if err != nil {

View File

@ -1,7 +1,6 @@
package mapblockaccessor
import (
"mapserver/coords"
"mapserver/eventbus"
"mapserver/layer"
"mapserver/settings"
@ -17,17 +16,9 @@ type FindNextLegacyBlocksResult struct {
UnfilteredCount int
}
func (a *MapBlockAccessor) FindNextLegacyBlocks(s settings.Settings, layers []layer.Layer, limit int) (*FindNextLegacyBlocksResult, error) {
func (a *MapBlockAccessor) FindNextLegacyBlocks(s settings.Settings, layers []*layer.Layer, limit int) (*FindNextLegacyBlocksResult, error) {
fields := logrus.Fields{
"x": lastpos.X,
"y": lastpos.Y,
"z": lastpos.Z,
"limit": limit,
}
logrus.WithFields(fields).Debug("FindMapBlocksByPos")
nextResult, err := a.accessor.FindNextInitialBlocks(lastpos, limit)
nextResult, err := a.accessor.FindNextInitialBlocks(s, layers, limit)
blocks := nextResult.List
if err != nil {
@ -37,28 +28,10 @@ func (a *MapBlockAccessor) FindNextLegacyBlocks(s settings.Settings, layers []la
result := FindNextLegacyBlocksResult{}
mblist := make([]*mapblockparser.MapBlock, 0)
var newlastpos *coords.MapBlockCoords
result.HasMore = len(blocks) == limit
result.UnfilteredCount = len(blocks)
result.HasMore = nextResult.HasMore
result.UnfilteredCount = nextResult.UnfilteredCount
for _, block := range blocks {
newlastpos = block.Pos
if result.LastMtime < block.Mtime {
result.LastMtime = block.Mtime
}
inLayer := false
for _, l := range layerfilter {
if (block.Pos.Y*16) >= l.From && (block.Pos.Y*16) <= l.To {
inLayer = true
break
}
}
if !inLayer {
continue
}
fields := logrus.Fields{
"x": block.Pos.X,
"y": block.Pos.Y,
@ -80,10 +53,9 @@ func (a *MapBlockAccessor) FindNextLegacyBlocks(s settings.Settings, layers []la
}
result.LastPos = newlastpos
result.List = mblist
fields = logrus.Fields{
fields := logrus.Fields{
"len(List)": len(result.List),
"unfilteredCount": result.UnfilteredCount,
"hasMore": result.HasMore,

View File

@ -18,7 +18,7 @@ type FindMapBlocksByMtimeResult struct {
UnfilteredCount int
}
func (a *MapBlockAccessor) FindMapBlocksByMtime(lastmtime int64, limit int, layerfilter []layer.Layer) (*FindMapBlocksByMtimeResult, error) {
func (a *MapBlockAccessor) FindMapBlocksByMtime(lastmtime int64, limit int, layerfilter []*layer.Layer) (*FindMapBlocksByMtimeResult, error) {
fields := logrus.Fields{
"lastmtime": lastmtime,

View File

@ -17,8 +17,8 @@ import (
func TestSimpleRender(t *testing.T) {
logrus.SetLevel(logrus.InfoLevel)
layers := []layer.Layer{
layer.Layer{
layers := []*layer.Layer{
&layer.Layer{
Id: 0,
Name: "Base",
From: -16,

View File

@ -2,9 +2,6 @@ package settings
const (
SETTING_LAST_MTIME = "last_mtime"
SETTING_LASTX = "last_x"
SETTING_LASTY = "last_y"
SETTING_LASTZ = "last_z"
SETTING_INITIAL_RUN = "initial_run"
SETTING_LEGACY_PROCESSED = "legacy_processed"
)

View File

@ -20,7 +20,7 @@ import (
type TileRenderer struct {
mapblockrenderer *mapblockrenderer.MapBlockRenderer
layers []layer.Layer
layers []*layer.Layer
tdb *tiledb.TileDB
dba db.DBAccessor
Eventbus *eventbus.Eventbus
@ -29,7 +29,7 @@ type TileRenderer struct {
func NewTileRenderer(mapblockrenderer *mapblockrenderer.MapBlockRenderer,
tdb *tiledb.TileDB,
dba db.DBAccessor,
layers []layer.Layer) *TileRenderer {
layers []*layer.Layer) *TileRenderer {
return &TileRenderer{
mapblockrenderer: mapblockrenderer,
@ -99,7 +99,7 @@ func (tr *TileRenderer) RenderImage(tc *coords.TileCoords, recursionDepth int) (
for _, l := range tr.layers {
if l.Id == tc.LayerId {
layer = &l
layer = l
}
}

View File

@ -52,8 +52,8 @@ func TestTileRender(t *testing.T) {
tdb, _ := tiledb.New(tiletmpdir)
layers := []layer.Layer{
layer.Layer{
layers := []*layer.Layer{
&layer.Layer{
Id: 0,
Name: "Base",
From: -16,

View File

@ -26,16 +26,10 @@ func initialRender(ctx *app.App, jobs chan *coords.TileCoords) {
}
logrus.WithFields(fields).Info("Starting initial rendering job")
lastx := ctx.Settings.GetInt(settings.SETTING_LASTX, coords.MinCoord-1)
lasty := ctx.Settings.GetInt(settings.SETTING_LASTY, coords.MinCoord-1)
lastz := ctx.Settings.GetInt(settings.SETTING_LASTZ, coords.MinCoord-1)
lastcoords := coords.NewMapBlockCoords(lastx, lasty, lastz)
for true {
start := time.Now()
result, err := ctx.BlockAccessor.FindNextLegacyBlocks(lastcoords, ctx.Config.RenderingFetchLimit, ctx.Config.Layers)
result, err := ctx.BlockAccessor.FindNextLegacyBlocks(ctx.Settings, ctx.Config.Layers, ctx.Config.RenderingFetchLimit)
if err != nil {
panic(err)
@ -62,13 +56,6 @@ func initialRender(ctx *app.App, jobs chan *coords.TileCoords) {
tiles := renderMapblocks(ctx, jobs, result.List)
lastcoords = result.LastPos
ctx.Settings.SetInt64(settings.SETTING_LAST_MTIME, result.LastMtime)
//Save current positions of initial run
ctx.Settings.SetInt(settings.SETTING_LASTX, lastcoords.X)
ctx.Settings.SetInt(settings.SETTING_LASTY, lastcoords.Y)
ctx.Settings.SetInt(settings.SETTING_LASTZ, lastcoords.Z)
legacyProcessed += result.UnfilteredCount
ctx.Settings.SetInt(settings.SETTING_LEGACY_PROCESSED, legacyProcessed)
@ -89,9 +76,6 @@ func initialRender(ctx *app.App, jobs chan *coords.TileCoords) {
"tiles": tiles,
"processed": legacyProcessed,
"progress%": progress,
"X": lastcoords.X,
"Y": lastcoords.Y,
"Z": lastcoords.Z,
"elapsed": elapsed,
}
logrus.WithFields(fields).Info("Initial rendering")

View File

@ -9,7 +9,7 @@ import (
//Public facing config
type PublicConfig struct {
Layers []layer.Layer `json:"layers"`
Layers []*layer.Layer `json:"layers"`
MapObjects *app.MapObjectConfig `json:"mapobjects"`
}