Better tracking of cached data, only load data if needed

This commit is contained in:
Pieter Vander Vennet 2021-09-30 04:13:23 +02:00
parent 32cbd6e2c1
commit 4f456e8a7f
13 changed files with 349 additions and 185 deletions

View file

@ -9,6 +9,7 @@ import UnitsSpec from "./Units.spec";
import RelationSplitHandlerSpec from "./RelationSplitHandler.spec";
import SplitActionSpec from "./SplitAction.spec";
import {Utils} from "../Utils";
import TileFreshnessCalculatorSpec from "./TileFreshnessCalculator.spec";
ScriptUtils.fixUtils()
@ -21,7 +22,8 @@ const allTests = [
new UtilsSpec(),
new UnitsSpec(),
new RelationSplitHandlerSpec(),
new SplitActionSpec()
new SplitActionSpec(),
new TileFreshnessCalculatorSpec()
]
Utils.externalDownloadFunction = async (url) => {

View file

@ -0,0 +1,31 @@
import T from "./TestHelper";
import TileFreshnessCalculator from "../Logic/FeatureSource/TileFreshnessCalculator";
import {Tiles} from "../Models/TileRange";
import {equal} from "assert";
export default class TileFreshnessCalculatorSpec extends T {
constructor() {
super("TileFreshnessCalculatorSpec", [
[
"TileFresnessTests",
() => {
const calc = new TileFreshnessCalculator();
// 19/266407/175535
const date = new Date()
date.setTime(42)
calc.addTileLoad(Tiles.tile_index(19, 266406, 175534), date)
equal(42, calc.freshnessFor(19, 266406, 175534).getTime())
equal(42, calc.freshnessFor(20, 266406 * 2, 175534 * 2 + 1).getTime())
equal(undefined, calc.freshnessFor(19, 266406, 175535))
equal(undefined, calc.freshnessFor(18, 266406 / 2, 175534 / 2))
calc.addTileLoad(Tiles.tile_index(19, 266406, 175534+1), date)
calc.addTileLoad(Tiles.tile_index(19, 266406+1, 175534), date)
calc.addTileLoad(Tiles.tile_index(19, 266406+1, 175534+1), date)
equal(42, calc.freshnessFor(18, 266406 / 2, 175534 / 2).getTime())
}
]
])
}
}