Improve compatibility tests.
This commit is contained in:
@@ -3,17 +3,31 @@ print( math.cos( math.pi ) )
|
||||
print( math.sqrt( 9.0 ) )
|
||||
print( math.modf( 5.25 ) )
|
||||
|
||||
local aliases = {
|
||||
['nan']='<nan>',
|
||||
['inf']='<pos-inf>',
|
||||
['-inf']='<neg-inf>',
|
||||
['1.#INF']='<pos-inf>',
|
||||
['-1.#INF']='<neg-inf>',
|
||||
['1.#IND']='<nan>',
|
||||
['-1.#IND']='<nan>',
|
||||
}
|
||||
|
||||
local function normalized(x)
|
||||
local s = tostring(x)
|
||||
return aliases[s] or s
|
||||
end
|
||||
|
||||
-- binary ops
|
||||
function binops( a, b )
|
||||
local sa = tostring(a)
|
||||
local sb = tostring(b)
|
||||
print( sa..'+'..sb..'='..tostring(a+b) )
|
||||
print( sa..'-'..sb..'='..tostring(a-b) )
|
||||
print( sa..'*'..sb..'='..tostring(a*b) )
|
||||
print( sa..'^'..sb..'='..tostring(a^b) )
|
||||
print( sa..'/'..sb..'=',pcall( function() return a / b end ) )
|
||||
print( sa..'%'..sb..'=',pcall( function() return a % b end ) )
|
||||
print( sa..'+'..sb..'='..normalized(a+b) )
|
||||
print( sa..'-'..sb..'='..normalized(a-b) )
|
||||
print( sa..'*'..sb..'='..normalized(a*b) )
|
||||
print( sa..'^'..sb..'='..normalized(a^b) )
|
||||
print( sa..'/'..sb..'='..normalized(a/b) )
|
||||
print( sa..'%'..sb..'='..normalized(a%b) )
|
||||
return '--'
|
||||
end
|
||||
print( pcall( binops, 2, 0 ) )
|
||||
@@ -24,45 +38,48 @@ print( pcall( binops, 5, 2 ) )
|
||||
print( pcall( binops, -5, 2 ) )
|
||||
print( pcall( binops, 16, -2 ) )
|
||||
print( pcall( binops, -16, -2 ) )
|
||||
print( pcall( binops, 256, .5 ) )
|
||||
print( pcall( binops, 256, .25 ) )
|
||||
print( pcall( binops, 256, .625 ) )
|
||||
print( pcall( binops, 256, -.5 ) )
|
||||
print( pcall( binops, 256, -.25 ) )
|
||||
print( pcall( binops, 256, -.625 ) )
|
||||
print( pcall( binops, -256, .5 ) )
|
||||
print( pcall( binops, .5, 0 ) )
|
||||
print( pcall( binops, .5, 1 ) )
|
||||
print( pcall( binops, .5, 2 ) )
|
||||
print( pcall( binops, .5, -1 ) )
|
||||
print( pcall( binops, .5, -2 ) )
|
||||
print( pcall( binops, 256, 0.5 ) )
|
||||
print( pcall( binops, 256, 0.25 ) )
|
||||
print( pcall( binops, 256, 0.625 ) )
|
||||
print( pcall( binops, 256, -0.5 ) )
|
||||
print( pcall( binops, 256, -0.25 ) )
|
||||
print( pcall( binops, 256, -0.625 ) )
|
||||
print( pcall( binops, -256, 0.5 ) )
|
||||
print( pcall( binops, 0.5, 0 ) )
|
||||
print( pcall( binops, 0.5, 1 ) )
|
||||
print( pcall( binops, 0.5, 2 ) )
|
||||
print( pcall( binops, 0.5, -1 ) )
|
||||
print( pcall( binops, 0.5, -2 ) )
|
||||
print( pcall( binops, 2.25, 0 ) )
|
||||
print( pcall( binops, 2.25, 2 ) )
|
||||
print( pcall( binops, 2.25, .5 ) )
|
||||
print( pcall( binops, 2.25, 0.5 ) )
|
||||
print( pcall( binops, 2.25, 2.5 ) )
|
||||
print( pcall( binops, -2, 0 ) )
|
||||
|
||||
-- random tests
|
||||
print("Random tests")
|
||||
print( math.random(5,10) )
|
||||
print( math.random(5,10) )
|
||||
print( math.random(5,10) )
|
||||
print( math.random(5,10) )
|
||||
print( math.random() )
|
||||
print( math.random() )
|
||||
print( math.random() )
|
||||
print( math.random() )
|
||||
print( math.randomseed(20), math.random(), math.random(), math.random() )
|
||||
print( math.randomseed(20), math.random() )
|
||||
print( math.randomseed(20), math.random() )
|
||||
print( math.randomseed(30), math.random() )
|
||||
print( math.randomseed(30), math.random() )
|
||||
print( math.random(30) )
|
||||
print( math.random(30) )
|
||||
print( math.random(30) )
|
||||
print( math.random(30) )
|
||||
print( math.random(-4,-2) )
|
||||
print( math.random(-4,-2) )
|
||||
print( math.random(-4,-2) )
|
||||
print( math.random(-4,-2) )
|
||||
print( math.random(-4,-2) )
|
||||
local function testrandom(string,lo,hi)
|
||||
local c,e = loadstring('return '..string)
|
||||
for i=1,5 do
|
||||
local s,e = pcall(c)
|
||||
print( string, s and type(e) or e, (e>=lo) and (e<=hi) )
|
||||
end
|
||||
end
|
||||
testrandom('math.random()',0,1)
|
||||
testrandom('math.random(5,10)',5,10)
|
||||
testrandom('math.random(30)',0,30)
|
||||
testrandom('math.random(-4,-2)',-4,-2)
|
||||
local t = {}
|
||||
print( math.randomseed(20) )
|
||||
for i=1,20 do
|
||||
t[i] = math.random()
|
||||
end
|
||||
print( '-- comparing new numbers')
|
||||
for i=1,20 do
|
||||
print( t[i] == math.random(), t[i] == t[0] )
|
||||
end
|
||||
print( '-- resetting seed')
|
||||
print( math.randomseed(20) )
|
||||
for i=1,20 do
|
||||
print( t[i] == math.random() )
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user