# HG changeset patch # User sheepluva # Date 1417008053 -3600 # Node ID 15d1e24a8c722ca149c00ea1c71dcf3e21689869 # Parent 4eefc711309e3ad7ced21c2b1cc81512770fb5d4 move fixed test case out of 'todo' diff -r 4eefc711309e -r 15d1e24a8c72 tests/lua/todo/twothousandmines.lua --- a/tests/lua/todo/twothousandmines.lua Tue Nov 25 16:46:44 2014 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,112 +0,0 @@ --- spawns 2000 mines in a bit to see if engine can deal with it - - -- taken from http://code.google.com/p/hedgewars/wiki/LuaDrawing - PointsBuffer = '' -- A string to accumulate points in - function AddPoint(x, y, width, erase) - PointsBuffer = PointsBuffer .. string.char(band(x,0xff00) / 256 , band(x,0xff) , band(y,0xff00) / 256 , band(y,0xff)) - if width then - width = bor(width,0x80) - if erase then - width = bor(width,0x40) - end - PointsBuffer = PointsBuffer .. string.char(width) - else - PointsBuffer = PointsBuffer .. string.char(0) - end - if #PointsBuffer > 245 then - ParseCommand('draw '..PointsBuffer) - PointsBuffer = '' - end - end - function FlushPoints() - if #PointsBuffer > 0 then - ParseCommand('draw '..PointsBuffer) - PointsBuffer = '' - end - end - - -local ta_pointsize = 63 -local ta_radius = (ta_pointsize * 10 + 6) / 2 - -local sqrttwo = math.sqrt(2) - --- creates round test area -function AddTestArea(testarea) - step = 100 - xstep = step * testarea["xdir"] - ystep = step * testarea["ydir"] - x = testarea["x"] - y = testarea["y"] - if xstep * ystep ~= 0 then - xstep = math.floor(xstep / sqrttwo) - ystep = math.floor(ystep / sqrttwo) - end - AddPoint(x, y, ta_pointsize); - AddPoint(x + xstep, y + ystep, ta_pointsize, true); -end - --- vertical test area -local taa_v2 = {x= 350, y=1500, xdir= 0, ydir=-1} - --- fail counter -local nfailed = 0 -local nspawned = 0 -local ndied = 0 - -function onGameInit() - -- At first we have to overwrite/set some global variables - -- that define the map, the game has to load, as well as - -- other things such as the game rules to use, etc. - -- Things we don't modify here will use their default values. - - -- The base number for the random number generator - Seed = 1 - -- The map to be played - MapGen = mgDrawn - -- The theme to be used - Theme = "Bamboo" - -- Game settings and rules - EnableGameFlags(gfOneClanMode, gfDisableWind, gfDisableLandObjects, gfDisableGirders, gfSolidLand) - CaseFreq = 0 - MinesNum = 0 - Explosives = 0 - - -- No damage please - DamagePercent = 1 - - -- Draw Map - AddPoint(10,30,0) -- hog spawn platform - -- test areas - AddTestArea(taa_v2) - - FlushPoints() - - -- Create the player team - AddTeam("'Zooka Team", 14483456, "Simple", "Island", "Default") - -- And add a hog to it - player = AddHog("Hunter", 0, 1, "NoHat") - -- place it on how spawn platform - SetGearPosition(player, 10, 10) -end - -local pass = 0 -local nMines = 0 -local maxMines = 2000 - -function onGameStart() - local maxPass = maxMines / 25 - for pass = 1, maxPass, 1 do - pass = pass + 1 - -- spawn 25 mines - for i = 0, 480, 20 do - AddGear(110 + i, 1000 - i - (pass * 30), gtMine, 0, 0, 0, 0) - nMines = nMines + 1 - end - end -end - -function onNewTurn() - WriteLnToConsole('Engine succeessfully dealt with ' .. nMines .. ' mines!') - EndLuaTest(TEST_SUCCESSFUL) -end diff -r 4eefc711309e -r 15d1e24a8c72 tests/lua/twothousandmines.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/lua/twothousandmines.lua Wed Nov 26 14:20:53 2014 +0100 @@ -0,0 +1,112 @@ +-- spawns 2000 mines in a bit to see if engine can deal with it + + -- taken from http://code.google.com/p/hedgewars/wiki/LuaDrawing + PointsBuffer = '' -- A string to accumulate points in + function AddPoint(x, y, width, erase) + PointsBuffer = PointsBuffer .. string.char(band(x,0xff00) / 256 , band(x,0xff) , band(y,0xff00) / 256 , band(y,0xff)) + if width then + width = bor(width,0x80) + if erase then + width = bor(width,0x40) + end + PointsBuffer = PointsBuffer .. string.char(width) + else + PointsBuffer = PointsBuffer .. string.char(0) + end + if #PointsBuffer > 245 then + ParseCommand('draw '..PointsBuffer) + PointsBuffer = '' + end + end + function FlushPoints() + if #PointsBuffer > 0 then + ParseCommand('draw '..PointsBuffer) + PointsBuffer = '' + end + end + + +local ta_pointsize = 63 +local ta_radius = (ta_pointsize * 10 + 6) / 2 + +local sqrttwo = math.sqrt(2) + +-- creates round test area +function AddTestArea(testarea) + step = 100 + xstep = step * testarea["xdir"] + ystep = step * testarea["ydir"] + x = testarea["x"] + y = testarea["y"] + if xstep * ystep ~= 0 then + xstep = math.floor(xstep / sqrttwo) + ystep = math.floor(ystep / sqrttwo) + end + AddPoint(x, y, ta_pointsize); + AddPoint(x + xstep, y + ystep, ta_pointsize, true); +end + +-- vertical test area +local taa_v2 = {x= 350, y=1500, xdir= 0, ydir=-1} + +-- fail counter +local nfailed = 0 +local nspawned = 0 +local ndied = 0 + +function onGameInit() + -- At first we have to overwrite/set some global variables + -- that define the map, the game has to load, as well as + -- other things such as the game rules to use, etc. + -- Things we don't modify here will use their default values. + + -- The base number for the random number generator + Seed = 1 + -- The map to be played + MapGen = mgDrawn + -- The theme to be used + Theme = "Bamboo" + -- Game settings and rules + EnableGameFlags(gfOneClanMode, gfDisableWind, gfDisableLandObjects, gfDisableGirders, gfSolidLand) + CaseFreq = 0 + MinesNum = 0 + Explosives = 0 + + -- No damage please + DamagePercent = 1 + + -- Draw Map + AddPoint(10,30,0) -- hog spawn platform + -- test areas + AddTestArea(taa_v2) + + FlushPoints() + + -- Create the player team + AddTeam("'Zooka Team", 14483456, "Simple", "Island", "Default") + -- And add a hog to it + player = AddHog("Hunter", 0, 1, "NoHat") + -- place it on how spawn platform + SetGearPosition(player, 10, 10) +end + +local pass = 0 +local nMines = 0 +local maxMines = 2000 + +function onGameStart() + local maxPass = maxMines / 25 + for pass = 1, maxPass, 1 do + pass = pass + 1 + -- spawn 25 mines + for i = 0, 480, 20 do + AddGear(110 + i, 1000 - i - (pass * 30), gtMine, 0, 0, 0, 0) + nMines = nMines + 1 + end + end +end + +function onNewTurn() + WriteLnToConsole('Engine succeessfully dealt with ' .. nMines .. ' mines!') + EndLuaTest(TEST_SUCCESSFUL) +end