Testing by Assertions
Range Check
Check whether a value stays inside an allowed range.
boundary assertion
Range assertions use two comparisons: one for the lower bound and one for the upper bound.
Range Check
range_check.lua
Replay: real traced execution (multi-file project)
local value = 7
local lower = 5
local upper = 10
local passed = value >= lower and value <= upper
local status = "fail"
if passed then
status = "pass"
end
print("value=" .. value)
print("status=" .. status)
local value = 3
local lower = 5
local upper = 10
local passed = value >= lower and value <= upper
local status = "fail"
if passed then
status = "pass"
end
print("value=" .. value)
print("status=" .. status)
local value = 11
local lower = 5
local upper = 10
local passed = value >= lower and value <= upper
local status = "fail"
if passed then
status = "pass"
end
print("value=" .. value)
print("status=" .. status)
value ← 7, lower ← 5, upper ← 10, passed ← true, status ← fail
1local value→ 7 = 7 --@value=3, 112local lower→ 5 = 53local upper→ 10 = 104local passed→ true = value7 >= lower5 and value <= upper105local status→ fail = "fail"6if passed thenstatus ← pass
5local status = "fail"6if passedtrue then7 status→ pass = "pass"8endprint("value=" .. value)
8end9print("value=" .. value7)10print("status=" .. statuspass)outputvalue=7 status=pass
value ← 3, lower ← 5, upper ← 10, passed ← false, status ← fail
1local value→ 3 = 32local lower→ 5 = 53local upper→ 10 = 104local passed→ false = value3 >= lower5 and value <= upper105local status→ fail = "fail"6if passed then7 status = "pass"8end9print("value=" .. value3)10print("status=" .. statusfail)outputvalue=3 status=fail
value ← 11, lower ← 5, upper ← 10, passed ← false, status ← fail
1local value→ 11 = 112local lower→ 5 = 53local upper→ 10 = 104local passed→ false = value11 >= lower5 and value <= upper105local status→ fail = "fail"6if passed then7 status = "pass"8end9print("value=" .. value11)10print("status=" .. statusfail)outputvalue=11 status=fail