Adopt generator based interface by mapgen tests
This put the tests more in line with actual mapgen scripts.
This commit is contained in:
parent
e56ebb3f46
commit
201d215f29
@ -10,10 +10,11 @@ Engine.GetTemplate = (path) => {
|
||||
|
||||
Engine.LoadLibrary("rmgen");
|
||||
|
||||
var g_MapSettings = { "Size": 512 };
|
||||
var g_Map = new RandomMap(0, "blackness");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
g_MapSettings = { "Size": 512 };
|
||||
globalThis.g_Map = new RandomMap(0, "blackness");
|
||||
|
||||
let tileClass = new TileClass(g_Map.getSize());
|
||||
|
||||
let addedPos = new Vector2D(5, 0);
|
||||
|
@ -10,10 +10,12 @@ Engine.GetTemplate = (path) => {
|
||||
|
||||
Engine.LoadLibrary("rmgen");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
var g_MapSettings = { "Size": 512 };
|
||||
var g_Map = new RandomMap(0, "blackness");
|
||||
let center = new Vector2D(10, 10);
|
||||
{
|
||||
g_MapSettings = { "Size": 512 };
|
||||
globalThis.g_Map = new RandomMap(0, "blackness");
|
||||
const center = new Vector2D(10, 10);
|
||||
let area = createArea(new DiskPlacer(3, center));
|
||||
|
||||
// Contains center
|
||||
@ -43,13 +45,13 @@ Engine.LoadLibrary("rmgen");
|
||||
TS_ASSERT(!area.contains(new Vector2D(-1, -1)));
|
||||
// Contains map edge
|
||||
TS_ASSERT(area.contains(new Vector2D(0, 0)));
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
{
|
||||
// Contains points outside map disk range on CircularMap
|
||||
var g_MapSettings = { "Size": 512, "CircularMap": true };
|
||||
var g_Map = new RandomMap(0, "blackness");
|
||||
var area = createArea(new DiskPlacer(10, new Vector2D(436, 436)));
|
||||
g_MapSettings = { "Size": 512, "CircularMap": true };
|
||||
g_Map = new RandomMap(0, "blackness");
|
||||
let area = createArea(new DiskPlacer(10, new Vector2D(436, 436)));
|
||||
|
||||
TS_ASSERT(area.contains(new Vector2D(438, 438)));
|
||||
TS_ASSERT(area.contains(new Vector2D(437, 436)));
|
||||
@ -59,15 +61,16 @@ Engine.LoadLibrary("rmgen");
|
||||
area = createArea(new DiskPlacer(3, new Vector2D(0, 0)));
|
||||
// Does not allow points out of map boundaries
|
||||
TS_ASSERT(!area.contains(new Vector2D(-1, -1)));
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
var g_MapSettings = { "Size": 320, "CircularMap": true };
|
||||
var g_Map = new RandomMap(0, "blackness");
|
||||
{
|
||||
g_MapSettings = { "Size": 320, "CircularMap": true };
|
||||
g_Map = new RandomMap(0, "blackness");
|
||||
// Does not error with floating point radius
|
||||
var area = createArea(new DiskPlacer(86.4, new Vector2D(160, 160)));
|
||||
// Does not error with extreme out of bounds disk
|
||||
area = createArea(new DiskPlacer(86.4, new Vector2D(800, 800)));
|
||||
// Does not error when disk on edge
|
||||
area = createArea(new DiskPlacer(10, new Vector2D(321, 321)));
|
||||
}
|
||||
}
|
||||
|
@ -10,10 +10,11 @@ Engine.GetTemplate = (path) => {
|
||||
|
||||
Engine.LoadLibrary("rmgen");
|
||||
|
||||
var g_MapSettings = { "Size": 512 };
|
||||
var g_Map = new RandomMap(0, "blackness");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
g_MapSettings = { "Size": 512 };
|
||||
globalThis.g_Map = new RandomMap(0, "blackness");
|
||||
|
||||
let min = new Vector2D(4, 4);
|
||||
let max = new Vector2D(10, 10);
|
||||
|
||||
|
@ -3,14 +3,11 @@ function* GenerateMap()
|
||||
try
|
||||
{
|
||||
yield;
|
||||
TS_FAIL("The yield statement didn't throw.");
|
||||
}
|
||||
catch (error)
|
||||
{
|
||||
TS_ASSERT(error instanceof Error);
|
||||
TS_ASSERT_EQUALS(error.message, "Failed to convert the yielded value to an integer.");
|
||||
yield 50;
|
||||
return;
|
||||
}
|
||||
|
||||
TS_FAIL("The yield statement didn't throw.");
|
||||
}
|
||||
|
@ -10,10 +10,11 @@ Engine.GetTemplate = (path) => {
|
||||
|
||||
Engine.LoadLibrary("rmgen");
|
||||
|
||||
var g_MapSettings = { "Size": 512 };
|
||||
var g_Map = new RandomMap(0, "blackness");
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
g_MapSettings = { "Size": 512 };
|
||||
globalThis.g_Map = new RandomMap(0, "blackness");
|
||||
|
||||
let min = new Vector2D(5, 5);
|
||||
let max = new Vector2D(7, 7);
|
||||
|
||||
|
@ -10,10 +10,10 @@ Engine.GetTemplate = (path) => {
|
||||
|
||||
Engine.LoadLibrary("rmgen");
|
||||
|
||||
var g_MapSettings = { "Size": 512 };
|
||||
var g_Map;
|
||||
|
||||
function* GenerateMap()
|
||||
{
|
||||
g_MapSettings = { "Size": 512 };
|
||||
|
||||
let min = new Vector2D(5, 5);
|
||||
let center = new Vector2D(6, 6);
|
||||
let max = new Vector2D(7, 7);
|
||||
@ -23,7 +23,7 @@ var g_Map;
|
||||
|
||||
// Test SmoothingPainter
|
||||
{
|
||||
g_Map = new RandomMap(0, "blackness");
|
||||
globalThis.g_Map = new RandomMap(0, "blackness");
|
||||
|
||||
let centerHeight = g_Map.getHeight(center);
|
||||
|
||||
|
@ -10,20 +10,22 @@ Engine.GetTemplate = (path) => {
|
||||
|
||||
Engine.LoadLibrary("rmgen");
|
||||
|
||||
var g_MapSettings = { "Size": 512 };
|
||||
var g_Map = new RandomMap(0, "blackness");
|
||||
|
||||
// Test that that it checks by value, not by reference
|
||||
function* GenerateMap()
|
||||
{
|
||||
g_MapSettings = { "Size": 512 };
|
||||
globalThis.g_Map = new RandomMap(0, "blackness");
|
||||
|
||||
// Test that that it checks by value, not by reference
|
||||
{
|
||||
const tileClass = new TileClass(2);
|
||||
const reference1 = new Vector2D(1, 1);
|
||||
const reference2 = new Vector2D(1, 1);
|
||||
tileClass.add(reference1);
|
||||
TS_ASSERT(tileClass.has(reference2));
|
||||
}
|
||||
}
|
||||
|
||||
// Test out-of-bounds
|
||||
{
|
||||
// Test out-of-bounds
|
||||
{
|
||||
const tileClass = new TileClass(32);
|
||||
|
||||
const absentPoints = [
|
||||
@ -38,10 +40,10 @@ var g_Map = new RandomMap(0, "blackness");
|
||||
|
||||
for (const point of absentPoints)
|
||||
TS_ASSERT(!tileClass.has(point));
|
||||
}
|
||||
}
|
||||
|
||||
// Test getters
|
||||
{
|
||||
// Test getters
|
||||
{
|
||||
const tileClass = new TileClass(88);
|
||||
|
||||
const point = new Vector2D(5, 5);
|
||||
@ -62,4 +64,5 @@ var g_Map = new RandomMap(0, "blackness");
|
||||
TS_ASSERT_EQUALS(tileClass.countNonMembersInRadius(pointBorder, 1), 4);
|
||||
TS_ASSERT_EQUALS(tileClass.countNonMembersInRadius(pointBorder, 2), 11);
|
||||
TS_ASSERT_EQUALS(tileClass.countNonMembersInRadius(pointBorder, 3), 22);
|
||||
}
|
||||
}
|
||||
|
@ -60,22 +60,10 @@ public:
|
||||
const Script::StructuredClone result{RunMapGenerationScript(progress, scriptInterface,
|
||||
path, "{\"Seed\": 0}", JSPROP_ENUMERATE | JSPROP_PERMANENT)};
|
||||
|
||||
if (path == "maps/random/tests/test_Generator.js" ||
|
||||
path == "maps/random/tests/test_RecoverableError.js")
|
||||
{
|
||||
TS_ASSERT_EQUALS(progress.load(), 50);
|
||||
TS_ASSERT_DIFFERS(result, nullptr);
|
||||
}
|
||||
else
|
||||
{
|
||||
// The test scripts don't call `ExportMap` so `RunMapGenerationScript` allways
|
||||
// returns `nullptr`.
|
||||
TS_ASSERT_EQUALS(result, nullptr);
|
||||
// Because the test scripts don't call `ExportMap`, `GenerateMap` is searched, which
|
||||
// doesn't exist.
|
||||
TS_ASSERT_STR_CONTAINS(logger.GetOutput(),
|
||||
"Failed to call the generator `GenerateMap`.");
|
||||
}
|
||||
|
||||
if (path == "maps/random/tests/test_Generator.js")
|
||||
TS_ASSERT_EQUALS(progress.load(), 50);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user