diff options
author | wesley <wesley.werner@gmail.com> | 2021-07-26 07:18:50 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-26 07:18:50 +1000 |
commit | 1efbbbed996f60ae53934179325376bf11c3b31f (patch) | |
tree | 97739cfe58a9d970810bda387d56996c3e41e7f7 /tests/lua-star_spec.lua | |
parent | 281bc15b671406f785838b2b105d57079f31df38 (diff) | |
parent | fedc1dc38c4a6d3106de88acc1076e1fb2e53720 (diff) | |
download | lua-star-1efbbbed996f60ae53934179325376bf11c3b31f.tar.xz |
Merge pull request #1 from NickFlexer/exclude_diagonal_moving
added option to disable diagonal movement
Diffstat (limited to 'tests/lua-star_spec.lua')
-rw-r--r-- | tests/lua-star_spec.lua | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/lua-star_spec.lua b/tests/lua-star_spec.lua index 65a8722..53df343 100644 --- a/tests/lua-star_spec.lua +++ b/tests/lua-star_spec.lua @@ -67,6 +67,28 @@ describe("Lua star", function() { x = 10, y = 10 }, } + local simplemapDiagonalSolution = { + { x = 1, y = 1 }, + { x = 1, y = 2 }, + { x = 1, y = 3 }, + { x = 1, y = 4 }, + { x = 1, y = 5 }, + { x = 1, y = 6 }, + { x = 1, y = 7 }, + { x = 1, y = 8 }, + { x = 1, y = 9 }, + { x = 2, y = 9 }, + { x = 3, y = 9 }, + { x = 4, y = 9 }, + { x = 5, y = 9 }, + { x = 6, y = 9 }, + { x = 7, y = 9 }, + { x = 8, y = 9 }, + { x = 9, y = 9 }, + { x = 9, y = 10 }, + { x = 10, y = 10 }, + } + local complexmap = [[ 0000000000 1111111110 @@ -196,6 +218,18 @@ describe("Lua star", function() end) + it("find a path on a simple map without diagonam movement", function () + + local luastar = require("lua-star") + local excludeDiagonals = true + makemap(simplemap) + local path = luastar:find(mapsize, mapsize, start, goal, mapTileIsOpen, false, excludeDiagonals) + --printSolution(path) + assert.are.equal(19, #path) + assert.are.same(simplemapDiagonalSolution, path) + + end) + it("find a path on a complex map", function() local luastar = require("lua-star") @@ -216,6 +250,26 @@ describe("Lua star", function() end) + it("find no diagonal path", function() + + local luastar = require("lua-star") + local excludeDiagonals = true + makemap(unsolvablemap) + local path = luastar:find(mapsize, mapsize, start, goal, mapTileIsOpen, false, excludeDiagonals) + assert.is_false(path) + + end) + + it("find no diagonal path on a complex map", function() + + local luastar = require("lua-star") + local excludeDiagonals = true + makemap(complexmap) + local path = luastar:find(mapsize, mapsize, start, goal, mapTileIsOpen, false, excludeDiagonals) + assert.is_false(path) + + end) + it("does not cache paths by default", function() local luastar = require("lua-star") |