Jump to content

Module:math/testcases

Wiktionary වෙතින්

All tests passed. (refresh)

TextExpectedActual
test_gcd:
Passed111
Passed-111
Passed000
Passed0, 000
Passed1, 011
Passed0, 111
Passed1, 111
Passed6, 422
Passed6, -422
Passed-6, -422
Passed2, 822
Passed15, 2055
Passed20, 1555
Passed35, -2177
Passed48, 1866
Passed8, 12, 1644
Passed25, -35, 9555
Passed95, -35, 2555
Passed1500, 750, 150000, 625125125
Passed186028, 193052, 14462444
Passed2^100, 2^539.007199254741e+159.007199254741e+15
TextExpectedActual
test_lcm:
Passed111
Passed-111
Passed000
Passed0, 000
Passed1, 000
Passed0, 100
Passed1, 111
Passed6, 41212
Passed6, -41212
Passed-6, -41212
Passed2, 888
Passed15, 206060
Passed20, 156060
Passed35, -21105105
Passed48, 18144144
Passed8, 12, 164848
Passed25, -35, 9533253325
Passed95, -35, 2533253325
Passed1500, 750, 150000, 625150000150000
Passed186028, 193052, 1446243.2461830712478e+143.2461830712478e+14
Passed2^100, 2^531.2676506002282e+301.2676506002282e+30

local tests = require("Module:UnitTests")
local m_math = require("Module:math")

local concat = table.concat
local gcd = m_math.gcd
local lcm = m_math.lcm
local unpack = unpack

local function do_test(func, args, expected, name)
	if name == nil then
		name = concat(args, ", ")
	end
	tests:equals(name, func(unpack(args)), expected)
end

function tests:check_gcd(args, expected, name)
	return do_test(gcd, args, expected, name)
end

function tests:check_lcm(args, expected, name)
	return do_test(lcm, args, expected, name)
end

function tests:test_gcd()
	self:iterate({
		{{1}, 1},
		{{-1}, 1},
		{{0}, 0},
		{{0, 0}, 0},
		{{1, 0}, 1},
		{{0, 1}, 1},
		{{1, 1}, 1},
		{{6, 4}, 2},
		{{6, -4}, 2},
		{{-6, -4}, 2},
		{{2, 8}, 2},
		{{15, 20}, 5},
		{{20, 15}, 5},
		{{35, -21}, 7},
		{{48, 18}, 6},
		{{8, 12, 16}, 4},
		{{25, -35, 95}, 5},
		{{95, -35, 25}, 5},
		{{1500, 750, 150000, 625}, 125},
		{{186028, 193052, 144624}, 4},
		{{2^100, 2^53}, 2^53, "2^100, 2^53"},
	}, "check_gcd")
end

function tests:test_lcm()
	self:iterate({
		{{1}, 1},
		{{-1}, 1},
		{{0}, 0},
		{{0, 0}, 0},
		{{1, 0}, 0},
		{{0, 1}, 0},
		{{1, 1}, 1},
		{{6, 4}, 12},
		{{6, -4}, 12},
		{{-6, -4}, 12},
		{{2, 8}, 8},
		{{15, 20}, 60},
		{{20, 15}, 60},
		{{35, -21}, 105},
		{{48, 18}, 144},
		{{8, 12, 16}, 48},
		{{25, -35, 95}, 3325},
		{{95, -35, 25}, 3325},
		{{1500, 750, 150000, 625}, 150000},
		{{186028, 193052, 144624}, 324618307124784},
		{{2^100, 2^53}, 2^100, "2^100, 2^53"},
	}, "check_lcm")
end

return tests
"https://si.wiktionary.org/w/index.php?title=Module:math/testcases&oldid=197297" වෙතින් සම්ප්‍රවේශනය කෙරිණි