Add tests for DUP
This commit is contained in:
parent
09e42c69d5
commit
cb1214dcdb
25
tests.lua
25
tests.lua
|
@ -137,7 +137,7 @@ function buildEnvironment(testString)
|
|||
return testEnv
|
||||
end
|
||||
|
||||
local twoRandom = function() return math.random(100000), math.random(100000) end
|
||||
local twoRandom = function() return math.random(-100000, 100000), math.random(-100000, 100000) end
|
||||
|
||||
|
||||
describe("Interpreter tests", function()
|
||||
|
@ -186,7 +186,7 @@ describe("Interpreter tests", function()
|
|||
end)
|
||||
it("can evaluate a arithmetic expression with multiple operations", function()
|
||||
for i = 1, 1000 do
|
||||
operands = {math.random(100000), math.random(100000), math.random(100000), math.random(100000)}
|
||||
operands = {math.random(-100000,100000), math.random(-100000,100000), math.random(-100000,100000), math.random(-100000,100000)}
|
||||
local operations = {math.random(4), math.random(4), math.random(4)}
|
||||
local testString = ""..operands[1]
|
||||
local expectedResult = operands[1]
|
||||
|
@ -211,6 +211,27 @@ describe("Interpreter tests", function()
|
|||
end
|
||||
end)
|
||||
end)
|
||||
describe("Core word tests", function()
|
||||
describe("DUP tests", function()
|
||||
it("DUPs the top item of a stack with one item on it.", function()
|
||||
local testEnv = buildEnvironment("1 DUP")
|
||||
interpreters.start(testEnv)
|
||||
assert.are.same(1, testEnv.activeDataStack.contents[2])
|
||||
end)
|
||||
it("DUPs the top item of a stack with random quantities of random numbers on it.", function()
|
||||
for i = 1, 1000 do
|
||||
local stack_depth = math.random(100)
|
||||
local stack_top = 0
|
||||
for j = 1, stack_depth do
|
||||
stack_top = math.random(-100000,100000)
|
||||
testEnv.activeDataStack:push(stack_top)
|
||||
end
|
||||
local testEnv = buildEnvironment(stack_top.." DUP")
|
||||
assert.are.same(stack_top, testEnv.activeDataStack.contents[j+1])
|
||||
end
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue