mirror of
https://github.com/minetest-mods/mesecons.git
synced 2024-09-24 13:20:30 +02:00
Clear up globalsteps in tests
This commit is contained in:
parent
f3f345d262
commit
92a7631d36
|
@ -23,16 +23,16 @@ describe("action queue", function()
|
|||
it("executes in order", function()
|
||||
world.set_node(layout[1][1], "mesecons:test_receptor_on")
|
||||
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
assert.equal(2, #mesecon._test_effector_events)
|
||||
assert.same({"on", layout[4][1]}, mesecon._test_effector_events[1])
|
||||
assert.same({"on", layout[5][1]}, mesecon._test_effector_events[2])
|
||||
|
||||
world.set_node(layout[1][1], "mesecons:test_receptor_off")
|
||||
mesecon.receptor_off(layout[1][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off action
|
||||
mineunit:execute_globalstep() -- Execute deactivate/change actions
|
||||
assert.equal(4, #mesecon._test_effector_events)
|
||||
assert.same({"off", layout[4][1]}, mesecon._test_effector_events[3])
|
||||
assert.same({"off", layout[5][1]}, mesecon._test_effector_events[4])
|
||||
|
@ -43,8 +43,8 @@ describe("action queue", function()
|
|||
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
|
||||
world.set_node(layout[1][1], "mesecons:test_receptor_off")
|
||||
mesecon.receptor_off(layout[1][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off action
|
||||
mineunit:execute_globalstep() -- Execute deactivate/change actions
|
||||
assert.equal(0, #mesecon._test_effector_events)
|
||||
end)
|
||||
|
||||
|
@ -54,9 +54,9 @@ describe("action queue", function()
|
|||
mineunit:execute_globalstep(0.1)
|
||||
mineunit:execute_globalstep(1)
|
||||
assert.equal(0, #mesecon._test_effector_events)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
assert.equal(0, #mesecon._test_effector_events)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
assert.equal(2, #mesecon._test_effector_events)
|
||||
end)
|
||||
end)
|
||||
|
|
|
@ -26,15 +26,15 @@ describe("placement/digging service", function()
|
|||
-- Dig then replace a receptor and check that the connected effectors changed.
|
||||
|
||||
mesecon._test_dig(layout[1][1])
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off action
|
||||
assert.equal("mesecons:test_conductor_off", world.get_node(layout[2][1]).name)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute deactivate/change actions
|
||||
assert.equal(3, #mesecon._test_effector_events)
|
||||
|
||||
mesecon._test_place(layout[1][1], "mesecons:test_receptor_on")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(layout[2][1]).name)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute activate/change action
|
||||
assert.equal(6, #mesecon._test_effector_events)
|
||||
end)
|
||||
|
||||
|
@ -42,22 +42,22 @@ describe("placement/digging service", function()
|
|||
-- Dig then replace a powered conductor and check that the connected effectors changed.
|
||||
|
||||
mesecon._test_dig(layout[2][1])
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off action
|
||||
assert.equal("mesecons:test_conductor_off", world.get_node(layout[3][1]).name)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute deactivate/change actions
|
||||
assert.equal(2, #mesecon._test_effector_events)
|
||||
|
||||
mesecon._test_place(layout[2][1], "mesecons:test_conductor_off")
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(layout[2][1]).name)
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(layout[3][1]).name)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
assert.equal(4, #mesecon._test_effector_events)
|
||||
end)
|
||||
|
||||
it("updates effectors on placement", function()
|
||||
local pos = {x = 0, y = 0, z = 1}
|
||||
mesecon._test_place(pos, "mesecons:test_effector")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
assert.equal(tonumber("10100000", 2), world.get_node(pos).param2)
|
||||
end)
|
||||
|
||||
|
@ -81,7 +81,7 @@ describe("placement/digging service", function()
|
|||
|
||||
it("triggers autoconnect hooks", function()
|
||||
mesecon._test_dig(layout[2][1])
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute delayed hook
|
||||
assert.equal(1, #mesecon._test_autoconnects)
|
||||
|
||||
mesecon._test_place(layout[2][1], layout[2][2])
|
||||
|
@ -138,7 +138,7 @@ describe("overheating service", function()
|
|||
else
|
||||
mesecon.receptor_off(layout[1][1], mesecon.rules.alldirs)
|
||||
end
|
||||
mineunit:execute_globalstep(0)
|
||||
mineunit:execute_globalstep(0) -- Execute receptor_on/receptor_off/activate/deactivate/change actions
|
||||
until minetest.get_node(layout[2][1]).name ~= "mesecons:test_effector"
|
||||
assert.same({"overheat", layout[2][1]}, mesecon._test_effector_events[#mesecon._test_effector_events])
|
||||
assert.equal(0, mesecon.get_heat(layout[2][1]))
|
||||
|
@ -173,19 +173,19 @@ describe("screwdriver service", function()
|
|||
it("updates conductors", function()
|
||||
-- Rotate a conductor and see that the circuit state changes.
|
||||
rotate(1)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off action
|
||||
assert.equal("mesecons:test_conductor_off", world.get_node(layout[3][1]).name)
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(layout[5][1]).name)
|
||||
rotate(2)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off action
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(layout[3][1]).name)
|
||||
assert.equal("mesecons:test_conductor_off", world.get_node(layout[5][1]).name)
|
||||
rotate(3)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off action
|
||||
assert.equal("mesecons:test_conductor_off", world.get_node(layout[3][1]).name)
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(layout[5][1]).name)
|
||||
rotate(0)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off action
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(layout[3][1]).name)
|
||||
assert.equal("mesecons:test_conductor_off", world.get_node(layout[5][1]).name)
|
||||
end)
|
||||
|
|
|
@ -24,8 +24,8 @@ describe("state", function()
|
|||
it("turns on", function()
|
||||
world.set_node(layout[1][1], "mesecons:test_receptor_on")
|
||||
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(layout[3][1]).name)
|
||||
assert.equal(tonumber("10000001", 2), world.get_node(layout[4][1]).param2)
|
||||
assert.equal(tonumber("10000010", 2), world.get_node(layout[5][1]).param2)
|
||||
|
@ -33,8 +33,8 @@ describe("state", function()
|
|||
|
||||
world.set_node(layout[2][1], "mesecons:test_receptor_on")
|
||||
mesecon.receptor_on(layout[2][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(layout[3][1]).name)
|
||||
assert.equal(tonumber("10000001", 2), world.get_node(layout[4][1]).param2)
|
||||
assert.equal(tonumber("10000010", 2), world.get_node(layout[5][1]).param2)
|
||||
|
@ -46,12 +46,12 @@ describe("state", function()
|
|||
world.set_node(layout[2][1], "mesecons:test_receptor_on")
|
||||
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
|
||||
mesecon.receptor_on(layout[2][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on actions
|
||||
|
||||
world.set_node(layout[1][1], "mesecons:test_receptor_off")
|
||||
mesecon.receptor_off(layout[1][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off and activate/change actions
|
||||
mineunit:execute_globalstep() -- Execute deactivate/change actions
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(layout[3][1]).name)
|
||||
assert.equal(tonumber("10000001", 2), world.get_node(layout[4][1]).param2)
|
||||
assert.equal(tonumber("00000000", 2), world.get_node(layout[5][1]).param2)
|
||||
|
@ -59,8 +59,8 @@ describe("state", function()
|
|||
|
||||
world.set_node(layout[2][1], "mesecons:test_receptor_off")
|
||||
mesecon.receptor_off(layout[2][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off action
|
||||
mineunit:execute_globalstep() -- Execute deactivate/change actions
|
||||
assert.equal("mesecons:test_conductor_off", world.get_node(layout[3][1]).name)
|
||||
assert.equal(tonumber("00000000", 2), world.get_node(layout[4][1]).param2)
|
||||
assert.equal(tonumber("00000000", 2), world.get_node(layout[5][1]).param2)
|
||||
|
@ -91,7 +91,7 @@ describe("rotation", function()
|
|||
it("works", function()
|
||||
world.set_node(layout[1][1], "mesecons:test_receptor_on")
|
||||
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
assert.equal("mesecons:test_conductor_rot_on", world.get_node(layout[2][1]).name)
|
||||
assert.equal("mesecons:test_conductor_rot_on", world.get_node(layout[3][1]).name)
|
||||
assert.equal("mesecons:test_conductor_rot_on", world.get_node(layout[4][1]).name)
|
||||
|
@ -119,17 +119,17 @@ describe("multiconductor", function()
|
|||
it("separates its subparts", function()
|
||||
world.set_node(layout[1][1], "mesecons:test_receptor_on")
|
||||
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
assert.equal("mesecons:test_multiconductor_001", world.get_node(layout[4][1]).name)
|
||||
|
||||
world.set_node(layout[2][1], "mesecons:test_receptor_on")
|
||||
mesecon.receptor_on(layout[2][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
assert.equal("mesecons:test_multiconductor_011", world.get_node(layout[4][1]).name)
|
||||
|
||||
world.set_node(layout[3][1], "mesecons:test_receptor_on")
|
||||
mesecon.receptor_on(layout[3][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
assert.equal("mesecons:test_multiconductor_on", world.get_node(layout[4][1]).name)
|
||||
end)
|
||||
|
||||
|
@ -141,7 +141,7 @@ describe("multiconductor", function()
|
|||
|
||||
world.set_node(layout[1][1], "mesecons:test_receptor_on")
|
||||
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
assert.equal("mesecons:test_multiconductor_101", world.get_node(layout[4][1]).name)
|
||||
end)
|
||||
end)
|
||||
|
|
|
@ -26,14 +26,14 @@ describe("FPGA rotation", function()
|
|||
minetest.registered_nodes[node.name].on_rotate(pos, node, nil, screwdriver.ROTATE_FACE)
|
||||
|
||||
mesecon._test_place(pos_b, "mesecons:test_receptor_on")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
assert.equal("mesecons_fpga:fpga1000", world.get_node(pos).name)
|
||||
|
||||
mesecon._test_dig(pos_b)
|
||||
mesecon._test_place(pos_c, "mesecons:test_receptor_on")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on/receptor_off actions
|
||||
mineunit:execute_globalstep() -- Execute activate/deactivate/change actions
|
||||
assert.equal("mesecons_fpga:fpga1000", world.get_node(pos).name)
|
||||
end)
|
||||
|
||||
|
@ -44,21 +44,19 @@ describe("FPGA rotation", function()
|
|||
minetest.registered_nodes[node.name].on_rotate(pos, node, nil, screwdriver.ROTATE_AXIS)
|
||||
|
||||
mesecon._test_place(pos_d, "mesecons:test_receptor_on")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
|
||||
|
||||
mesecon._test_dig(pos_d)
|
||||
mesecon._test_place(pos_a, "mesecons:test_receptor_on")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on/receptor_off actions
|
||||
mineunit:execute_globalstep() -- Execute activate/deactivate/change actions
|
||||
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
|
||||
end)
|
||||
|
||||
it("updates ports", function()
|
||||
mesecon._test_program_fpga(pos, {{"NOT", "A", "B"}})
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
|
||||
|
||||
local node = world.get_node(pos)
|
||||
|
@ -83,52 +81,27 @@ pending("FPGA programmer", function()
|
|||
|
||||
it("transfers instructions", function()
|
||||
mesecon._test_program_fpga(pos2, {{"NOT", "A", "B"}})
|
||||
|
||||
mesecon._test_paste_fpga_program(pos, mesecon._test_copy_fpga_program(pos2))
|
||||
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
|
||||
end)
|
||||
|
||||
it("does not copy from new FPGAs", function()
|
||||
mesecon._test_program_fpga(pos, {{"NOT", "A", "B"}})
|
||||
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
|
||||
mesecon._test_paste_fpga_program(pos, mesecon._test_copy_fpga_program(pos2))
|
||||
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
|
||||
end)
|
||||
|
||||
it("does not copy from cleared FPGAs", function()
|
||||
mesecon._test_program_fpga(pos, {{"NOT", "A", "B"}})
|
||||
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
|
||||
mesecon._test_program_fpga(pos2, {{"=", "A", "B"}})
|
||||
mesecon._test_program_fpga(pos2, {})
|
||||
mesecon._test_paste_fpga_program(pos, mesecon._test_copy_fpga_program(pos2))
|
||||
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
|
||||
end)
|
||||
|
||||
it("does not copy from non-FPGA nodes", function()
|
||||
mesecon._test_program_fpga(pos, {{"NOT", "A", "B"}})
|
||||
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
|
||||
mesecon._test_paste_fpga_program(pos, mesecon._test_copy_fpga_program(vector.add(pos2, 1)))
|
||||
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
|
||||
end)
|
||||
end)
|
||||
|
|
|
@ -37,8 +37,8 @@ describe("FPGA logic", function()
|
|||
if inputs.b then mesecon._test_place(pos_b, "mesecons:test_receptor_on") end
|
||||
if inputs.c then mesecon._test_place(pos_c, "mesecons:test_receptor_on") end
|
||||
if inputs.d then mesecon._test_place(pos_d, "mesecons:test_receptor_on") end
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on actions
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
|
||||
local expected_name = "mesecons_fpga:fpga"
|
||||
.. (outputs.d and 1 or 0) .. (outputs.c and 1 or 0)
|
||||
|
@ -170,8 +170,8 @@ describe("FPGA logic", function()
|
|||
mesecon._test_place(pos_b, "mesecons:test_effector")
|
||||
mesecon._test_place(pos_c, "mesecons:test_effector")
|
||||
mesecon._test_place(pos_d, "mesecons:test_effector")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on actions
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
|
||||
-- Makes an object from the last three effector events in the list for use with assert.same.
|
||||
-- This is necessary to ignore the ordering of events.
|
||||
|
@ -185,18 +185,18 @@ describe("FPGA logic", function()
|
|||
end
|
||||
|
||||
mesecon._test_place(pos_a, "mesecons:test_receptor_on")
|
||||
mineunit:execute_globalstep() -- Transmit the input to the FPGA
|
||||
mineunit:execute_globalstep() -- Run the FPGA
|
||||
mineunit:execute_globalstep() -- Execute receptor_on/receptor_off events
|
||||
mineunit:execute_globalstep() -- Execute activate/deactivate/change events
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
mineunit:execute_globalstep() -- Execute receptor_on/receptor_off actions
|
||||
mineunit:execute_globalstep() -- Execute activate/deactivate/change actions
|
||||
assert.equal("mesecons_fpga:fpga0110", world.get_node(pos).name)
|
||||
assert.same(event_tester({{"on", pos_b}, {"on", pos_c}, {"off", pos_d}}), event_tester(mesecon._test_effector_events))
|
||||
|
||||
mesecon._test_dig(pos_a)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off action
|
||||
mineunit:execute_globalstep() -- Execute deactivate/change actions
|
||||
mineunit:execute_globalstep() -- Execute receptor_on/receptor_off actions
|
||||
mineunit:execute_globalstep() -- Execute activate/deactivate/change actions
|
||||
assert.equal("mesecons_fpga:fpga1000", world.get_node(pos).name)
|
||||
assert.same(event_tester({{"off", pos_b}, {"off", pos_c}, {"on", pos_d}}), event_tester(mesecon._test_effector_events))
|
||||
end)
|
||||
|
@ -213,23 +213,23 @@ describe("FPGA logic", function()
|
|||
})
|
||||
|
||||
mesecon._test_place(pos_a, "mesecons:test_receptor_on")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on actions
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
assert.equal("mesecons_fpga:fpga0100", world.get_node(pos).name)
|
||||
|
||||
mesecon._test_dig(pos_a)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off actions
|
||||
mineunit:execute_globalstep() -- Execute deactivate/change actions
|
||||
assert.equal("mesecons_fpga:fpga0100", world.get_node(pos).name)
|
||||
|
||||
mesecon._test_place(pos_b, "mesecons:test_receptor_on")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on actions
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
assert.equal("mesecons_fpga:fpga1000", world.get_node(pos).name)
|
||||
|
||||
mesecon._test_dig(pos_b)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off actions
|
||||
mineunit:execute_globalstep() -- Execute deactivate/change actions
|
||||
assert.equal("mesecons_fpga:fpga1000", world.get_node(pos).name)
|
||||
end)
|
||||
end)
|
||||
|
|
|
@ -11,7 +11,7 @@ describe("LuaController lightweight interrupt", function()
|
|||
|
||||
before_each(function()
|
||||
mesecon._test_place(pos, "mesecons_luacontroller:luacontroller0000")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
end)
|
||||
|
||||
after_each(function()
|
||||
|
|
|
@ -10,7 +10,7 @@ describe("LuaController", function()
|
|||
|
||||
before_each(function()
|
||||
mesecon._test_place(pos, "mesecons_luacontroller:luacontroller0000")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
end)
|
||||
|
||||
after_each(function()
|
||||
|
@ -25,19 +25,18 @@ describe("LuaController", function()
|
|||
|
||||
it("I/O", function()
|
||||
mesecon._test_place(pos_a, "mesecons:test_receptor_on")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
mesecon._test_program_luac(pos, [[
|
||||
port.a = not pin.a
|
||||
port.b = not pin.b
|
||||
port.c = not pin.c
|
||||
port.d = not pin.d
|
||||
]])
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_luacontroller:luacontroller1110", world.get_node(pos).name)
|
||||
mesecon._test_dig(pos_a)
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off action
|
||||
mineunit:execute_globalstep() -- Execute deactivate/change actions
|
||||
assert.equal("mesecons_luacontroller:luacontroller0001", world.get_node(pos).name)
|
||||
end)
|
||||
|
||||
|
@ -53,11 +52,10 @@ describe("LuaController", function()
|
|||
end
|
||||
end
|
||||
]])
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_luacontroller:luacontroller0000", world.get_node(pos).name)
|
||||
mesecon._test_place(pos_a, "mesecons:test_receptor_on")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
mineunit:execute_globalstep() -- Execute activate/change actions
|
||||
assert.equal("mesecons_luacontroller:luacontroller1000", world.get_node(pos).name)
|
||||
end)
|
||||
|
||||
|
@ -128,13 +126,11 @@ describe("LuaController", function()
|
|||
(" "):rep(64000)
|
||||
port.a = true
|
||||
]])
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_luacontroller:luacontroller0001", world.get_node(pos).name)
|
||||
mesecon._test_program_luac(pos, [[
|
||||
(" "):rep(64001)
|
||||
port.b = true
|
||||
]])
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_luacontroller:luacontroller0000", world.get_node(pos).name)
|
||||
end)
|
||||
|
||||
|
@ -142,13 +138,11 @@ describe("LuaController", function()
|
|||
mesecon._test_program_luac(pos, [[
|
||||
port.a = (" a"):find("a", nil, true) == 2
|
||||
]])
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_luacontroller:luacontroller0001", world.get_node(pos).name)
|
||||
mesecon._test_program_luac(pos, [[
|
||||
(" a"):find("a", nil)
|
||||
port.b = true
|
||||
]])
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_luacontroller:luacontroller0000", world.get_node(pos).name)
|
||||
end)
|
||||
|
||||
|
@ -157,10 +151,10 @@ describe("LuaController", function()
|
|||
interrupt(0)
|
||||
interrupt(0)
|
||||
]])
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute 2 interrupts
|
||||
mineunit:execute_globalstep() -- Execute 4 interrupts
|
||||
mineunit:execute_globalstep() -- Execute 8 interrupts
|
||||
mineunit:execute_globalstep() -- Execute 16 interrupts
|
||||
assert.equal("mesecons_luacontroller:luacontroller_burnt", world.get_node(pos).name)
|
||||
end)
|
||||
|
||||
|
@ -169,7 +163,6 @@ describe("LuaController", function()
|
|||
port.a = true
|
||||
mem.x = (" "):rep(50000) .. (" "):rep(50000)
|
||||
]])
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_luacontroller:luacontroller_burnt", world.get_node(pos).name)
|
||||
end)
|
||||
|
||||
|
@ -178,7 +171,6 @@ describe("LuaController", function()
|
|||
port.a = true
|
||||
for i = 1, 1000000 do end
|
||||
]])
|
||||
mineunit:execute_globalstep()
|
||||
assert.equal("mesecons_luacontroller:luacontroller0000", world.get_node(pos).name)
|
||||
end)
|
||||
end)
|
||||
|
|
|
@ -138,7 +138,7 @@ describe("node movement", function()
|
|||
world.set_node(pos, "mesecons:test_conductor_off")
|
||||
|
||||
mesecon.mvps_push(pos, dir, 1, "")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute delayed autoconnect hook
|
||||
assert.equal(2, #mesecon._test_autoconnects)
|
||||
end)
|
||||
|
||||
|
@ -153,10 +153,10 @@ describe("node movement", function()
|
|||
mesecon._test_place(pos3, "mesecons:test_conductor_off")
|
||||
mesecon._test_place(pos4, "mesecons:test_conductor_off")
|
||||
mesecon._test_place(vector.add(pos4, dir), "mesecons:test_conductor_off")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
|
||||
mesecon.mvps_push(pos1, dir, 1, "")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on/receptor_off actions
|
||||
assert.equal("mesecons:test_conductor_off", world.get_node(pos2).name)
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(pos3).name)
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(pos4).name)
|
||||
|
@ -170,15 +170,15 @@ describe("node movement", function()
|
|||
mesecon._test_place(pos1, "mesecons:test_conductor_off")
|
||||
mesecon._test_place(pos2, "mesecons:test_receptor_on")
|
||||
mesecon._test_place(pos3, "mesecons:test_conductor_off")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
|
||||
mesecon.mvps_push(pos1, dir, 1, "")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_off action
|
||||
assert.equal("mesecons:test_conductor_off", world.get_node(vector.add(pos1, dir)).name)
|
||||
assert.equal("mesecons:test_conductor_off", world.get_node(pos3).name)
|
||||
|
||||
mesecon.mvps_pull_all(vector.add(pos1, dir), vector.multiply(dir, -1), 1, "")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(pos1).name)
|
||||
assert.equal("mesecons:test_conductor_on", world.get_node(pos3).name)
|
||||
end)
|
||||
|
@ -189,14 +189,14 @@ describe("node movement", function()
|
|||
mesecon._test_place(pos, "mesecons:test_effector")
|
||||
mesecon._test_place(vector.offset(pos, 0, 1, 0), "mesecons:test_receptor_on")
|
||||
mesecon._test_place(vector.add(pos, dir), "mesecons:test_receptor_on")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute receptor_on action
|
||||
|
||||
mesecon.mvps_push(pos, dir, 2, "")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute activate/deactivate/change actions
|
||||
assert.equal(tonumber("10000001", 2), world.get_node(vector.add(pos, dir)).param2)
|
||||
|
||||
mesecon.mvps_pull_single(vector.add(pos, dir), vector.multiply(dir, -1), 1, "")
|
||||
mineunit:execute_globalstep()
|
||||
mineunit:execute_globalstep() -- Execute activate/deactivate/change actions
|
||||
assert.equal(tonumber("10000100", 2), world.get_node(pos).param2)
|
||||
end)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user