You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
5.0 KiB
169 lines
5.0 KiB
|
6 years ago
|
|
||
|
|
-- abs
|
||
|
|
|
||
|
|
local a = math.abs (10)
|
||
|
|
local b = math.abs (-20)
|
||
|
|
local c = math.abs (2.56)
|
||
|
|
local d = math.abs (-34.67)
|
||
|
|
local e = math.abs (-0)
|
||
|
|
|
||
|
|
assertTrue (a == 10, 'math.abs() should return the passed argument if it is positive')
|
||
|
|
assertTrue (b == 20, 'math.abs() should return the positive form of the passed argument if it is negative')
|
||
|
|
assertTrue (c == 2.56, 'math.abs() should return the passed argument if it is a positive floating point number')
|
||
|
|
assertTrue (d == 34.67, 'math.abs() should return the positive form of the passed argument if it is a positive floating point number')
|
||
|
|
assertTrue (e == 0, 'math.abs() should return zero if passed zero')
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
-- math.acos
|
||
|
|
-- math.cos
|
||
|
|
|
||
|
|
|
||
|
|
local a = math.acos (1)
|
||
|
|
--local b = math.acos (math.cos (0.3))
|
||
|
|
local c = math.cos (0)
|
||
|
|
--local d = math.cos (math.acos (0.3))
|
||
|
|
|
||
|
|
assertTrue (a == 0, 'math.acos() should return 0 when passed 1')
|
||
|
|
--assertTrue (b == 0.3, 'math.acos() should return x when passed math.cos(x)')
|
||
|
|
assertTrue (c == 1, 'math.cos() should return 1 when passed 0')
|
||
|
|
--assertTrue (d == 0.3, 'math.cos() should return x when passed math.acos(x)')
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
-- math.asin
|
||
|
|
-- math.sin
|
||
|
|
|
||
|
|
|
||
|
|
local a = math.asin (0)
|
||
|
|
--local b = math.asin (math.sin (90))
|
||
|
|
local c = math.sin (0)
|
||
|
|
local d = math.sin (math.asin (0.2))
|
||
|
|
|
||
|
|
assertTrue (a == 0, 'math.asin() should return 0 when passed 0')
|
||
|
|
--assertTrue (b == 90, 'math.asin() should return x when passed math.sin(x)')
|
||
|
|
assertTrue (c == 0, 'math.sin() should return 0 when passed 0')
|
||
|
|
assertTrue (d == 0.2, 'math.sin() should return x when passed math.asin(x)')
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
-- math.atan
|
||
|
|
-- math.tan
|
||
|
|
|
||
|
|
|
||
|
|
local a = math.atan (0)
|
||
|
|
--local b = math.atan (math.tan (0.3))
|
||
|
|
local c = math.tan (0)
|
||
|
|
local d = math.tan (math.atan (0.3))
|
||
|
|
|
||
|
|
assertTrue (a == 0, 'math.atan() should return 0 when passed 0')
|
||
|
|
--assertTrue (b == 0.3, 'math.atan() should return x when passed math.tan(x)')
|
||
|
|
assertTrue (c == 0, 'math.tan() should return 0 when passed 0')
|
||
|
|
assertTrue (d == 0.3, 'math.tan() should return x when passed math.atan(x)')
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
-- math.ceil
|
||
|
|
|
||
|
|
local a = math.ceil (14)
|
||
|
|
local b = math.ceil (14.45)
|
||
|
|
local c = math.ceil (14.5)
|
||
|
|
local d = math.ceil (0.1)
|
||
|
|
local e = math.ceil (0.6)
|
||
|
|
local f = math.ceil (-0.6)
|
||
|
|
local g = math.ceil (-122.4)
|
||
|
|
|
||
|
|
assertTrue (a == 14, 'math.ceil() should round up to the next integer [1]')
|
||
|
|
assertTrue (b == 15, 'math.ceil() should round up to the next integer [2]')
|
||
|
|
assertTrue (c == 15, 'math.ceil() should round up to the next integer [3]')
|
||
|
|
assertTrue (d == 1, 'math.ceil() should round up to the next integer [4]')
|
||
|
|
assertTrue (e == 1, 'math.ceil() should round up to the next integer [5]')
|
||
|
|
assertTrue (f == 0, 'math.ceil() should round up to the next integer [6]')
|
||
|
|
assertTrue (g == -122, 'math.ceil() should round up to the next integer [7]')
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
-- math.deg
|
||
|
|
|
||
|
|
a = math.deg (0)
|
||
|
|
b = math.deg (math.pi)
|
||
|
|
c = math.deg (math.pi * 2)
|
||
|
|
d = math.deg (math.pi / 2)
|
||
|
|
|
||
|
|
assertTrue (a == 0, 'math.deg() should return 0 when passed zero')
|
||
|
|
assertTrue (b == 180, 'math.deg() should return 180 when passed Pi')
|
||
|
|
assertTrue (c == 360, 'math.deg() should return 360 when passed 2Pi')
|
||
|
|
assertTrue (d == 90, 'math.deg() should return 90 when passed Pi/2')
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
--math.frexp
|
||
|
|
|
||
|
|
a, b = math.frexp(63)
|
||
|
|
assertTrue (a == 0.984375, 'math.frexp should return the correct mantissa when passed a positive number.')
|
||
|
|
assertTrue (b == 6, 'math.frexp should return the correct exponent when passed a positive number.')
|
||
|
|
|
||
|
|
a, b = math.frexp(-63)
|
||
|
|
assertTrue (a == -0.984375, 'math.frexp should return the correct mantissa when passed a negative number.')
|
||
|
|
assertTrue (b == 6, 'math.frexp should return the correct exponent when passed a negative number.')
|
||
|
|
|
||
|
|
a, b = math.frexp(0)
|
||
|
|
assertTrue (a == 0, 'math.frexp should return a zero mantissa when passed zero.')
|
||
|
|
assertTrue (b == 0, 'math.frexp should return a zero exponent when passed zero.')
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
--math.huge
|
||
|
|
|
||
|
|
a = math.huge + 1
|
||
|
|
b = -math.huge - 1
|
||
|
|
|
||
|
|
assertTrue (a == math.huge, 'math.huge should not change value with addition.')
|
||
|
|
assertTrue (b == -math.huge, 'Negative math.huge should not change value with subtraction.')
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
-- math.rad
|
||
|
|
|
||
|
|
a = math.rad (0)
|
||
|
|
b = math.rad (180)
|
||
|
|
c = math.rad (270)
|
||
|
|
d = math.rad (360)
|
||
|
|
e = math.rad (450)
|
||
|
|
f = math.rad (-180)
|
||
|
|
|
||
|
|
assertTrue (a == 0, 'math.rad() should return 0 when passed zero')
|
||
|
|
assertTrue (b == math.pi, 'math.rad() should return Pi when passed 180')
|
||
|
|
assertTrue (c == 1.5 * math.pi, 'math.rad() should return 1.5*Pi when passed 270')
|
||
|
|
assertTrue (d == 2 * math.pi, 'math.rad() should return 2*Pi when passed 360')
|
||
|
|
assertTrue (e == 2.5 * math.pi, 'math.rad() should return 2.5*Pi when passed 450')
|
||
|
|
assertTrue (f == -math.pi, 'math.rad() should return -Pi when passed -180')
|
||
|
|
|
||
|
|
|
||
|
|
-- math.random
|
||
|
|
|
||
|
|
a = math.random()
|
||
|
|
b = math.random()
|
||
|
|
|
||
|
|
assertTrue (a == 16807 / 2147483647, 'math.random() should initialise with a value of 1')
|
||
|
|
assertTrue (b == ((16807 * a * 2147483647) % 2147483647) / 2147483647, 'math.random() should follow the right sequence [1]')
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
-- math.randomseed
|
||
|
|
|
||
|
|
math.randomseed(123)
|
||
|
|
|
||
|
|
c = math.random()
|
||
|
|
d = math.random()
|
||
|
|
|
||
|
|
assertTrue (c == ((16807 * 123) % 2147483647) / 2147483647, 'math.random() should follow the right sequence [2]')
|
||
|
|
assertTrue (d == ((16807 * c * 2147483647) % 2147483647) / 2147483647, 'math.random() should follow the right sequence [3]')
|