local mNts = require('Module:Number table sorting') -- the module to be tested
local Nts = mNts._exportClasses().Nts -- the Nts class
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
-------------------------------------------------------------------------------
-- Helper functions and values
-------------------------------------------------------------------------------
suite.offValues = {'off', 'no', 'NO', 'n', 'false', false}
suite.onValues = {'on', 'yes', 'YES', 'y', 'true', true}
local function makeOnOffAsserts(fragment)
suite['assert' .. fragment .. 'WhenOn'] = function (self, first, func, ...)
for i, on in ipairs(suite.onValues) do
self['assert' .. fragment](self, first, func(on), ...)
end
end
suite['assert' .. fragment .. 'WhenOff'] = function (self, first, func, ...)
for i, off in ipairs(suite.offValues) do
self['assert' .. fragment](self, first, func(off), ...)
end
end
end
makeOnOffAsserts('Equals')
makeOnOffAsserts('StringContains')
makeOnOffAsserts('NotStringContains')
function suite:assertErrorContains(pattern, func, plain)
local success, msg = pcall(func)
self:assertFalse(success)
self:assertStringContains(pattern, msg, plain)
end
function suite:assertParsedNumberEquals(expected,aString)
local ntsObj = Nts.new({aString})
ntsObj:parseNumber(aString)
self:assertEquals(expected, ntsObj.number)
end
function suite:assertSortKeyEquals(expected, args)
local ntsObj = Nts.new(args)
self:assertEquals(expected, ntsObj:makeSortKey())
end
function suite:assertDisplayEquals(expected, args)
local ntsObj = Nts.new(args)
self:assertEquals(expected, ntsObj:makeDisplay())
end
-------------------------------------------------------------------------------
-- parseNumber tests
-------------------------------------------------------------------------------
function suite:testParseNumbers()
suite:assertParsedNumberEquals(1, ' 1 ')
suite:assertParsedNumberEquals(1, '1')
suite:assertParsedNumberEquals(-1, '-1')
suite:assertParsedNumberEquals(0.1, '0.1')
suite:assertParsedNumberEquals(0.1, '.1')
suite:assertParsedNumberEquals(-0.1, '-0.1')
suite:assertParsedNumberEquals(-0.1, '-.1')
suite:assertParsedNumberEquals(1000,'1000')
suite:assertParsedNumberEquals(1000,'1,000')
suite:assertParsedNumberEquals(12345678901234567890, '12345678901234567890')
suite:assertParsedNumberEquals(12345678901234567890, '12,345,678,901,234,567,890')
suite:assertParsedNumberEquals(10345678901234567.12345678, '10345678901234567.12345678')
suite:assertParsedNumberEquals(-10345678901234567.12345678, '-10345678901234567.12345678')
suite:assertParsedNumberEquals(5.4321e10, '5.4321e10')
suite:assertParsedNumberEquals(-5.4321e10, '-5.4321e10')
suite:assertParsedNumberEquals(5.4321e-10, '5.4321e-10')
suite:assertParsedNumberEquals(-5.4321e-10, '-5.4321e-10')
suite:assertParsedNumberEquals(math.huge, '5.4321e308')
suite:assertParsedNumberEquals(-math.huge, '-5.4321e308')
end
function suite:testParseMinusSigns()
suite:assertParsedNumberEquals(-1, '−1')
suite:assertParsedNumberEquals(-1, '−1')
suite:assertParsedNumberEquals(1e-1, '1e−1')
suite:assertParsedNumberEquals(1e-1, '1e−1')
end
function suite:testInvalidNumbers()
suite:assertErrorContains("'a1' is not a valid number", function ()
Nts.new{'a1'}
end)
suite:assertErrorContains("Fractions are not supported", function ()
Nts.new{'1/2'}
end)
end
-------------------------------------------------------------------------------
-- Sort key tests
-------------------------------------------------------------------------------
function suite:testSortKeyLimits()
suite:assertSortKeyEquals('5000000000000000000♠', {'0'})
suite:assertSortKeyEquals('5000000000000000000♠', {'5.4321e-325'})
suite:assertSortKeyEquals('5000000000000000000♠', {'-5.4321e-325'})
suite:assertSortKeyEquals('9000000000000000000♠', {'5.4321e308'})
suite:assertSortKeyEquals('1000000000000000000♠', {'-5.4321e308'})
end
function suite:testSortKeys()
suite:assertSortKeyEquals('7009123456789000000♠', {'1234567890'})
suite:assertSortKeyEquals('7010123456789010000♠', {'12345678901'})
suite:assertSortKeyEquals('7011123456789012000♠', {'123456789012'})
suite:assertSortKeyEquals('7012123456789012300♠', {'1234567890123'})
suite:assertSortKeyEquals('7013123456789012340♠', {'12345678901234'})
suite:assertSortKeyEquals('7014123456789012345♠', {'123456789012345'})
suite:assertSortKeyEquals('7015123456789012345♠', {'1234567890123456'})
suite:assertSortKeyEquals('7016123456789012345♠', {'12345678901234567'})
suite:assertSortKeyEquals('7017123456789012345♠', {'123456789012345678'})
suite:assertSortKeyEquals('7018123456789012345♠', {'1234567890123456789'})
suite:assertSortKeyEquals('7019123456789012345♠', {'12345678901234567890'})
suite:assertSortKeyEquals('7002456123456000000♠', {'456.123456'})
-- suite:assertSortKeyEquals('2997543876544099999♠', {'-456.123456'}) incorrect original testvalue
suite:assertSortKeyEquals('2997543876543999999♠', {'-456.123456'}) -- still incorrect, should be 2997543876544000000
suite:assertSortKeyEquals('7015234567890123456♠', {'2,345,678,901,234,567'})
suite:assertSortKeyEquals('7005123456000000000♠', {'123.456e3'})
suite:assertSortKeyEquals('7005123456000000000♠', {'123,456'})
suite:assertSortKeyEquals('6999543210000000000♠', {'54321e-5'})
suite:assertSortKeyEquals('6989543210000000000♠', {'54321e-15'})
suite:assertSortKeyEquals('6899543210000000000♠', {'54321e-105'})
-- suite:assertSortKeyEquals('6799543219999999999♠', {'54321e-205'}) original incorrect test value
suite:assertSortKeyEquals('6799543209999999999♠', {'54321e-205'}) -- still incorrect
-- suite:assertSortKeyEquals('6699543200000000000♠', {'54321e-305'})
suite:assertSortKeyEquals('7010543210000000000♠', {'5.4321e10'})
suite:assertSortKeyEquals('7020543210000000000♠', {'5.4321e20'})
-- suite:assertSortKeyEquals('7030543210000000000♠', {'5.4321e30'}) original correct test value
suite:assertSortKeyEquals('7030543209999999999♠', {'5.4321e30'}) -- no longer correct value
-- suite:assertSortKeyEquals('7100543200000000000♠', {'5.4321e100'}) original incorrect test value
suite:assertSortKeyEquals('7100543210000000000♠', {'5.4321e100'})
-- suite:assertSortKeyEquals('7200543210000099999♠', {'5.4321e200'}) original test value
suite:assertSortKeyEquals('7200543209999999999♠', {'5.4321e200'}) -- almost correct
suite:assertSortKeyEquals('7300543210000000000♠', {'5.4321e300'})
suite:assertSortKeyEquals('9000000000000000000♠', {'5.4321e400'})
suite:assertSortKeyEquals('2989456790000000000♠', {'-5.4321e10'})
suite:assertSortKeyEquals('2979456790000000000♠', {'-5.4321e20'})
-- suite:assertSortKeyEquals('2969456789999999999♠', {'-5.4321e30'}) original test value
suite:assertSortKeyEquals('2969456790000000000♠', {'-5.4321e30'}) -- correct
-- suite:assertSortKeyEquals('2899456780000000000♠', {'-5.4321e100'}) original test value
suite:assertSortKeyEquals('2899456790000000000♠', {'-5.4321e100'}) -- correct
-- suite:assertSortKeyEquals('2799456789999999999♠', {'-5.4321e200'}) original test value
suite:assertSortKeyEquals('2799456790000000000♠', {'-5.4321e200'}) -- correct
suite:assertSortKeyEquals('2699456790000000000♠', {'-5.4321e300'})
suite:assertSortKeyEquals('1000000000000000000♠', {'-5.4321e400'})
suite:assertSortKeyEquals('6990543210000000000♠', {'5.4321e-10'})
suite:assertSortKeyEquals('6980543210000000000♠', {'5.4321e-20'})
suite:assertSortKeyEquals('6970543210000000000♠', {'5.4321e-30'})
suite:assertSortKeyEquals('6900543210000000000♠', {'5.4321e-100'})
suite:assertSortKeyEquals('6800543210000000000♠', {'5.4321e-200'})
-- suite:assertSortKeyEquals('6700543210000000000♠', {'5.4321e-300'})
suite:assertSortKeyEquals('5000000000000000000♠', {'5.4321e-400'})
suite:assertSortKeyEquals('3009456790000000000♠', {'-5.4321e-10'})
suite:assertSortKeyEquals('3019456789999999999♠', {'-5.4321e-20'})
-- suite:assertSortKeyEquals('3029456790000000000♠', {'-5.4321e-30'}) original test value
suite:assertSortKeyEquals('3029456789999999999♠', {'-5.4321e-30'}) -- almost
-- suite:assertSortKeyEquals('3099456789999999999♠', {'-5.4321e-100'}) original test value
suite:assertSortKeyEquals('3099456790000000000♠', {'-5.4321e-100'}) -- correct
-- suite:assertSortKeyEquals('3199456780000099999♠', {'-5.4321e-200'}) original test value
suite:assertSortKeyEquals('3199456789999999999♠', {'-5.4321e-200'}) -- almost
suite:assertSortKeyEquals('3299456780000000000♠', {'-5.4321e-300'})
suite:assertSortKeyEquals('5000000000000000000♠', {'-5.4321e-400'})
suite:assertSortKeyEquals('6993100000000000000♠', {'0.0000001'})
suite:assertSortKeyEquals('6993600000000000000♠', {'0.0000006'})
suite:assertSortKeyEquals('6993300000000000000♠', {'0.0000003'})
suite:assertSortKeyEquals('6993900000000000000♠', {'0.0000009'})
suite:assertSortKeyEquals('6993200000000000000♠', {'0.0000002'})
suite:assertSortKeyEquals('6993500000000000000♠', {'0.0000005'})
suite:assertSortKeyEquals('6993400000000000000♠', {'0.0000004'})
suite:assertSortKeyEquals('6993700000000000000♠', {'0.0000007'})
suite:assertSortKeyEquals('6993800000000000000♠', {'0.0000008'})
suite:assertSortKeyEquals('5000000000000000000♠', {'0.0000000'})
suite:assertSortKeyEquals('3006900000000000000♠', {'-0.0000001'})
suite:assertSortKeyEquals('3006400000000000000♠', {'-0.0000006'})
suite:assertSortKeyEquals('3006700000000000000♠', {'-0.0000003'})
suite:assertSortKeyEquals('3006100000000000000♠', {'-0.0000009'})
suite:assertSortKeyEquals('3006800000000000000♠', {'-0.0000002'})
suite:assertSortKeyEquals('3006500000000000000♠', {'-0.0000005'})
suite:assertSortKeyEquals('3006600000000000000♠', {'-0.0000004'})
suite:assertSortKeyEquals('3006300000000000000♠', {'-0.0000007'})
suite:assertSortKeyEquals('3006200000000000000♠', {'-0.0000008'})
end
function suite:testSortKeys2()
suite:assertSortKeyEquals('3000900000000000000♠', {'-0.1'})
suite:assertSortKeyEquals('3000800000000000000♠', {'-0.2'})
suite:assertSortKeyEquals('3000700000000000000♠', {'-0.3'})
suite:assertSortKeyEquals('3000600000000000000♠', {'-0.4'})
suite:assertSortKeyEquals('3000500000000000000♠', {'-0.5'})
suite:assertSortKeyEquals('3000400000000000000♠', {'-0.6'})
suite:assertSortKeyEquals('3000300000000000000♠', {'-0.7'})
suite:assertSortKeyEquals('3000199999999999999♠', {'-0.8'})
suite:assertSortKeyEquals('3000099999999999999♠', {'-0.9'})
suite:assertSortKeyEquals('2999900000000000000♠', {'-1'})
suite:assertSortKeyEquals('2999800000000000000♠', {'-2'})
suite:assertSortKeyEquals('2999700000000000000♠', {'-3'})
suite:assertSortKeyEquals('2999600000000000000♠', {'-4'})
suite:assertSortKeyEquals('2999500000000000000♠', {'-5'})
suite:assertSortKeyEquals('2999400000000000000♠', {'-6'})
suite:assertSortKeyEquals('2999300000000000000♠', {'-7'})
suite:assertSortKeyEquals('2999200000000000000♠', {'-8'})
suite:assertSortKeyEquals('2999100000000000000♠', {'-9'})
suite:assertSortKeyEquals('2983896543210987654♠', {'-10345678901234567'})
suite:assertSortKeyEquals('7016103456789012345♠', {'10345678901234567'})
suite:assertSortKeyEquals('2983896543210987654♠', {'-10,345,678,901,234,567'})
suite:assertSortKeyEquals('7016103456789012345♠', {'10,345,678,901,234,567'})
suite:assertSortKeyEquals('5000000000000000000♠', {'0.000000'})
suite:assertSortKeyEquals('6994900000000000000♠', {'0.000009'})
suite:assertSortKeyEquals('3005099999999999999♠', {'-0.000009'})
suite:assertSortKeyEquals('3005899999999999999♠', {'-0.000001'})
suite:assertSortKeyEquals('3005800000000000000♠', {'-0.000002'})
suite:assertSortKeyEquals('3005699999999999999♠', {'-0.000003'})
suite:assertSortKeyEquals('3005599999999999999♠', {'-0.000004'})
suite:assertSortKeyEquals('6994100000000000000♠', {'0.000001'})
suite:assertSortKeyEquals('6994200000000000000♠', {'0.000002'})
suite:assertSortKeyEquals('6994300000000000000♠', {'0.000003'})
suite:assertSortKeyEquals('6994400000000000000♠', {'0.000004'})
suite:assertSortKeyEquals('3005499999999999999♠', {'-0.000005'})
suite:assertSortKeyEquals('3005399999999999999♠', {'-0.000006'})
suite:assertSortKeyEquals('3005299999999999999♠', {'-0.000007'})
suite:assertSortKeyEquals('3005199999999999999♠', {'-0.000008'})
suite:assertSortKeyEquals('6993100000000000000♠', {'0.0000001'})
suite:assertSortKeyEquals('3006900000000000000♠', {'-0.0000001'})
end
function suite:testSortKeys3()
suite:assertSortKeyEquals('7016103456789012345♠', {'10345678901234567.12345678'})
suite:assertSortKeyEquals('7015123456789012345♠', {'1234567890123456.12345678'})
suite:assertSortKeyEquals('7014234567890123456♠', {'234567890123456.12345678'})
suite:assertSortKeyEquals('7013345678901234561♠', {'34567890123456.12345678'})
suite:assertSortKeyEquals('7012456789012345612♠', {'4567890123456.12345678'})
suite:assertSortKeyEquals('7011567890123456123♠', {'567890123456.12345678'})
suite:assertSortKeyEquals('7010678901234561234♠', {'67890123456.12345678'})
suite:assertSortKeyEquals('7009789012345612345♠', {'7890123456.12345678'})
suite:assertSortKeyEquals('7008890123456123456♠', {'890123456.12345678'})
suite:assertSortKeyEquals('7007901234561234567♠', {'90123456.12345678'})
suite:assertSortKeyEquals('7005123456123456780♠', {'0123456.12345678'})
suite:assertSortKeyEquals('7005123456123456780♠', {'123456.12345678'})
suite:assertSortKeyEquals('7004234561234567799♠', {'23456.12345678'})
suite:assertSortKeyEquals('7002456123456780000♠', {'3456.12345678'})
suite:assertSortKeyEquals('7002456123456780000♠', {'456.12345678'})
suite:assertSortKeyEquals('7001561234567800000♠', {'56.12345678'})
suite:assertSortKeyEquals('7000612345678000000♠', {'6.12345678'})
suite:assertSortKeyEquals('6999123456780000000♠', {'.12345678'})
suite:assertSortKeyEquals('6998234567800000000♠', {'.02345678'})
suite:assertSortKeyEquals('6997345678000000000♠', {'.00345678'})
suite:assertSortKeyEquals('6996456780000000000♠', {'.00045678'})
suite:assertSortKeyEquals('6995567800000000000♠', {'.00005678'})
suite:assertSortKeyEquals('6994678000000000000♠', {'.00000678'})
suite:assertSortKeyEquals('6993780000000000000♠', {'.00000078'})
suite:assertSortKeyEquals('6992800000000000000♠', {'.00000008'})
suite:assertSortKeyEquals('5000000000000000000♠', {'0'})
end
function suite:testSortKeys4()
suite:assertSortKeyEquals('2995570330657900000♠', {'-42966.93421'})
suite:assertSortKeyEquals('2995177810931299999♠', {'-82218.90687'})
suite:assertSortKeyEquals('2995065526236800000♠', {'-93447.37632'})
suite:assertSortKeyEquals('2995466138667300000♠', {'-53386.13327'})
suite:assertSortKeyEquals('2995091138906600000♠', {'-90886.10934'})
suite:assertSortKeyEquals('2995154034088099999♠', {'-84596.59119'})
suite:assertSortKeyEquals('2995661456718600000♠', {'-33854.32814'})
suite:assertSortKeyEquals('2995673280039000000♠', {'-32671.9961'})
suite:assertSortKeyEquals('2995718586477700000♠', {'-28141.35223'})
suite:assertSortKeyEquals('2995202294885999999♠', {'-79770.5114'})
suite:assertSortKeyEquals('2997809315340000000♠', {'-190.68466'})
suite:assertSortKeyEquals('2995091747332400000♠', {'-90825.26676'})
suite:assertSortKeyEquals('2995510976267400000♠', {'-48902.37326'})
suite:assertSortKeyEquals('2995791525201400000♠', {'-20847.47986'})
suite:assertSortKeyEquals('2995123912722499999♠', {'-87608.72775'})
suite:assertSortKeyEquals('2995383526155000000♠', {'-61647.38450'})
suite:assertSortKeyEquals('2995550423144800000♠', {'-44957.68552'})
suite:assertSortKeyEquals('2995202547700000000♠', {'-79745.23'})
suite:assertSortKeyEquals('2995740762353599999♠', {'-25923.76464'})
suite:assertSortKeyEquals('2995749101706400000♠', {'-25089.82936'})
suite:assertSortKeyEquals('2995176594059399999♠', {'-82340.59406'})
suite:assertSortKeyEquals('2995163690872899999♠', {'-83630.91271'})
suite:assertSortKeyEquals('2996391353068000000♠', {'-6086.46932'})
suite:assertSortKeyEquals('2996410357428000000♠', {'-5896.42572'})
suite:assertSortKeyEquals('2995625007539900000♠', {'-37499.24601'})
suite:assertSortKeyEquals('2995315611006100000♠', {'-68438.89938'})
suite:assertSortKeyEquals('2995234538459600000♠', {'-76546.15404'})
suite:assertSortKeyEquals('2995847035011900000♠', {'-15296.49881'})
suite:assertSortKeyEquals('2995050162076899999♠', {'-94983.79231'})
suite:assertSortKeyEquals('2995173355225999999♠', {'-82664.4774'})
suite:assertSortKeyEquals('2995260183535100000♠', {'-73981.64649'})
suite:assertSortKeyEquals('2995685583524500000♠', {'-31441.64754'})
suite:assertSortKeyEquals('2995664270381399999♠', {'-33572.96186'})
suite:assertSortKeyEquals('2995003711925900000♠', {'-99628.80741'})
suite:assertSortKeyEquals('2995221633013899999♠', {'-77836.69861'})
suite:assertSortKeyEquals('2995606940241900000♠', {'-39305.97581'})
suite:assertSortKeyEquals('2995471664011200000♠', {'-52833.59888'})
suite:assertSortKeyEquals('2995785717570800000♠', {'-21428.24292'})
suite:assertSortKeyEquals('2996687889733000000♠', {'-3121.10267'})
suite:assertSortKeyEquals('2995242622296899999♠', {'-75737.77031'})
suite:assertSortKeyEquals('2995829690357700000♠', {'-17030.96423'})
suite:assertSortKeyEquals('2995172258038300000♠', {'-82774.19617'})
suite:assertSortKeyEquals('2995290690594000000♠', {'-70930.94060'})
suite:assertSortKeyEquals('2995496251367300000♠', {'-50374.86327'})
suite:assertSortKeyEquals('2995816441484899999♠', {'-18355.85151'})
suite:assertSortKeyEquals('2995120977784899999♠', {'-87902.22151'})
suite:assertSortKeyEquals('2995788823580399999♠', {'-21117.64196'})
suite:assertSortKeyEquals('2995618778317100000♠', {'-38122.16829'})
suite:assertSortKeyEquals('2995135661813300000♠', {'-86433.81867'})
suite:assertSortKeyEquals('2995612055930500000♠', {'-38794.40695'})
suite:assertSortKeyEquals('2995433812230900000♠', {'-56618.77691'})
suite:assertSortKeyEquals('2995361018723200000♠', {'-63898.12768'})
suite:assertSortKeyEquals('2995039541404999999♠', {'-96045.8595'})
suite:assertSortKeyEquals('2995621235553700000♠', {'-37876.44463'})
suite:assertSortKeyEquals('2995661802405900000♠', {'-33819.75941'})
suite:assertSortKeyEquals('2995746574052000000♠', {'-25342.5948'})
suite:assertSortKeyEquals('2995499660990100000♠', {'-50033.90099'})
suite:assertSortKeyEquals('2995265784360199999♠', {'-73421.56398'})
suite:assertSortKeyEquals('2995615201132500000♠', {'-38479.88675'})
suite:assertSortKeyEquals('2995757863575100000♠', {'-24213.64249'})
suite:assertSortKeyEquals('2995606655783700000♠', {'-39334.42163'})
suite:assertSortKeyEquals('2995791518093100000♠', {'-20848.19069'})
suite:assertSortKeyEquals('2995883846089400000♠', {'-11615.39106'})
suite:assertSortKeyEquals('2996785472460000000♠', {'-2145.2754'})
suite:assertSortKeyEquals('2996290858233000000♠', {'-7091.41767'})
suite:assertSortKeyEquals('2995818685550600000♠', {'-18131.44494'})
suite:assertSortKeyEquals('2995851615712600000♠', {'-14838.42874'})
suite:assertSortKeyEquals('2996850468655000000♠', {'-1495.31345'})
suite:assertSortKeyEquals('2995311846582300000♠', {'-68815.34177'})
suite:assertSortKeyEquals('2995014981580300000♠', {'-98501.84197'})
suite:assertSortKeyEquals('2995504418167000000♠', {'-49558.18330'})
suite:assertSortKeyEquals('2995030306243499999♠', {'-96969.37565'})
suite:assertSortKeyEquals('2995344834291700000♠', {'-65516.57083'})
suite:assertSortKeyEquals('2995113341914899999♠', {'-88665.80851'})
suite:assertSortKeyEquals('2995304474922700000♠', {'-69552.50773'})
suite:assertSortKeyEquals('2995312737139100000♠', {'-68726.28609'})
suite:assertSortKeyEquals('2995482001318200000♠', {'-51799.86818'})
suite:assertSortKeyEquals('2996425812187000000♠', {'-5741.87813'})
suite:assertSortKeyEquals('2995486912181300000♠', {'-51308.78187'})
suite:assertSortKeyEquals('2995873101875300000♠', {'-12689.81247'})
suite:assertSortKeyEquals('2995541646323200000♠', {'-45835.36768'})
suite:assertSortKeyEquals('2995888963210700000♠', {'-11103.67893'})
suite:assertSortKeyEquals('2995883740891000000♠', {'-11625.91090'})
suite:assertSortKeyEquals('2996126726483000000♠', {'-8732.73517'})
suite:assertSortKeyEquals('2995067993695799999♠', {'-93200.63042'})
suite:assertSortKeyEquals('2996565823180000000♠', {'-4341.7682'})
suite:assertSortKeyEquals('2995130823596700000♠', {'-86917.64033'})
suite:assertSortKeyEquals('2995075340298500000♠', {'-92465.97015'})
suite:assertSortKeyEquals('2995785054254300000♠', {'-21494.57457'})
suite:assertSortKeyEquals('2995344501236999999♠', {'-65549.8763'})
suite:assertSortKeyEquals('2995863453863500000♠', {'-13654.61365'})
suite:assertSortKeyEquals('2996867826386099999♠', {'-1321.73614'})
suite:assertSortKeyEquals('2995122546703500000♠', {'-87745.32965'})
suite:assertSortKeyEquals('2995208635786300000♠', {'-79136.42137'})
suite:assertSortKeyEquals('2995255631518499999♠', {'-74436.84815'})
suite:assertSortKeyEquals('2995093547457100000♠', {'-90645.25429'})
suite:assertSortKeyEquals('2995545146845400000♠', {'-45485.31546'})
suite:assertSortKeyEquals('2995026372281199999♠', {'-97362.77188'})
suite:assertSortKeyEquals('2995009034451700000♠', {'-99096.55483'})
suite:assertSortKeyEquals('2995595212813000000♠', {'-40478.71870'})
suite:assertSortKeyEquals('2995164790310000000♠', {'-83520.9690'})
suite:assertSortKeyEquals('2995731907846900000♠', {'-26809.21531'})
suite:assertSortKeyEquals('2995646535218000000♠', {'-35346.47820'})
suite:assertSortKeyEquals('2995012364740000000♠', {'-98763.52600'})
suite:assertSortKeyEquals('2995867041849099999♠', {'-13295.81510'})
suite:assertSortKeyEquals('2995540136696000000♠', {'-45986.33040'})
suite:assertSortKeyEquals('2995716328184200000♠', {'-28367.18158'})
suite:assertSortKeyEquals('2995683537669999999♠', {'-31646.233'})
suite:assertSortKeyEquals('2996316675407900000♠', {'-6833.24592'})
suite:assertSortKeyEquals('2995127360958200000♠', {'-87263.90418'})
suite:assertSortKeyEquals('2995261710460599999♠', {'-73828.95394'})
suite:assertSortKeyEquals('2995233938840300000♠', {'-76606.11597'})
suite:assertSortKeyEquals('2995878032135000000♠', {'-12196.78650'})
suite:assertSortKeyEquals('2995586436638800000♠', {'-41356.33612'})
suite:assertSortKeyEquals('2995662247362600000♠', {'-33775.26373'})
suite:assertSortKeyEquals('2995809130860900000♠', {'-19086.91391'})
suite:assertSortKeyEquals('2995015830794699999♠', {'-98416.92053'})
suite:assertSortKeyEquals('2995324488958200000♠', {'-67551.10418'})
suite:assertSortKeyEquals('2995701520640600000♠', {'-29847.93594'})
suite:assertSortKeyEquals('2995616363294200000♠', {'-38363.67058'})
suite:assertSortKeyEquals('2996314603680000000♠', {'-6853.96320'})
suite:assertSortKeyEquals('2995821290940900000♠', {'-17870.90591'})
suite:assertSortKeyEquals('2995467305223800000♠', {'-53269.47762'})
suite:assertSortKeyEquals('2995066810127499999♠', {'-93318.98725'})
suite:assertSortKeyEquals('2995890568634800000♠', {'-10943.13652'})
suite:assertSortKeyEquals('2996160066205000000♠', {'-8399.33795'})
suite:assertSortKeyEquals('2995439227718799999♠', {'-56077.22813'})
suite:assertSortKeyEquals('2995561466700300000♠', {'-43853.32997'})
suite:assertSortKeyEquals('2995887377241700000♠', {'-11262.27583'})
suite:assertSortKeyEquals('2995040447727199999♠', {'-95955.22728'})
suite:assertSortKeyEquals('2995869727404100000♠', {'-13027.25959'})
suite:assertSortKeyEquals('2995713722551700000♠', {'-28627.74483'})
suite:assertSortKeyEquals('2995821082818500000♠', {'-17891.71815'})
suite:assertSortKeyEquals('2995566890226800000♠', {'-43310.97732'})
suite:assertSortKeyEquals('2995313537965500000♠', {'-68646.20345'})
suite:assertSortKeyEquals('2995551732617000000♠', {'-44826.73830'})
suite:assertSortKeyEquals('2995029818266200000♠', {'-97018.17338'})
suite:assertSortKeyEquals('2995188054577200000♠', {'-81194.54228'})
suite:assertSortKeyEquals('2996113357107999999♠', {'-8866.42892'})
suite:assertSortKeyEquals('2997333438560000000♠', {'-666.56144'})
suite:assertSortKeyEquals('2995162803710100000♠', {'-83719.62899'})
suite:assertSortKeyEquals('2997772106860000000♠', {'-227.89314'})
suite:assertSortKeyEquals('2995782877509400000♠', {'-21712.24906'})
suite:assertSortKeyEquals('2995636526141500000♠', {'-36347.38585'})
suite:assertSortKeyEquals('2995120894110999999♠', {'-87910.58890'})
suite:assertSortKeyEquals('2995689491176000000♠', {'-31050.8824'})
suite:assertSortKeyEquals('2995635191971000000♠', {'-36480.8029'})
suite:assertSortKeyEquals('2995658748901100000♠', {'-34125.10989'})
suite:assertSortKeyEquals('2995546278024700000♠', {'-45372.19753'})
suite:assertSortKeyEquals('2995042026878699999♠', {'-95797.31213'})
suite:assertSortKeyEquals('7000300000000000000♠', {'3'})
suite:assertSortKeyEquals('7000200000000000000♠', {'2'})
suite:assertSortKeyEquals('7000100000000000000♠', {'1'})
suite:assertSortKeyEquals('2999874199000000000♠', {'-1.25801'})
suite:assertSortKeyEquals('2999874200000000000♠', {'-1.2580'})
suite:assertSortKeyEquals('2999821280000000000♠', {'-1.7872'})
suite:assertSortKeyEquals('2999809348000000000♠', {'-1.90652'})
suite:assertSortKeyEquals('2999837282000000000♠', {'-1.62718'})
suite:assertSortKeyEquals('3000410540000000000♠', {'-.58946'})
suite:assertSortKeyEquals('3000322860000000000♠', {'-.67714'})
suite:assertSortKeyEquals('3000870210000000000♠', {'-.12979'})
suite:assertSortKeyEquals('3000293239999999999♠', {'-.70676'})
suite:assertSortKeyEquals('2999856690000000000♠', {'-1.4331'})
suite:assertSortKeyEquals('2999847054999999999♠', {'-1.52945'})
suite:assertSortKeyEquals('2999821013999999999♠', {'-1.78986'})
suite:assertSortKeyEquals('2999843150000000000♠', {'-1.56850'})
suite:assertSortKeyEquals('2999862558000099999♠', {'-1.37442'})
suite:assertSortKeyEquals('2999871973000000000♠', {'-1.28027'})
suite:assertSortKeyEquals('2999815739999999999♠', {'-1.84270'})
suite:assertSortKeyEquals('2999889440000000000♠', {'-1.10560'})
suite:assertSortKeyEquals('2999871439000000000♠', {'-1.28561'})
suite:assertSortKeyEquals('3000527490000000000♠', {'-0.47251'})
suite:assertSortKeyEquals('2999851303000000000♠', {'-1.48697'})
suite:assertSortKeyEquals('2999830204999900000♠', {'-1.69795'})
suite:assertSortKeyEquals('2999815187000000000♠', {'-1.84813'})
suite:assertSortKeyEquals('3000674140000000000♠', {'-0.32586'})
suite:assertSortKeyEquals('2999841400999999999♠', {'-1.58599'})
suite:assertSortKeyEquals('2999861921000000000♠', {'-1.38079'})
suite:assertSortKeyEquals('3000867630000000000♠', {'-0.13237'})
suite:assertSortKeyEquals('2999847899999999999♠', {'-1.5210'})
suite:assertSortKeyEquals('2999804997000000000♠', {'-1.95003'})
suite:assertSortKeyEquals('2999850277000000000♠', {'-1.49723'})
suite:assertSortKeyEquals('2999826150999900000♠', {'-1.73849'})
suite:assertSortKeyEquals('2999873981000000000♠', {'-1.26019'})
suite:assertSortKeyEquals('2999807748000000000♠', {'-1.92252'})
suite:assertSortKeyEquals('2999855587000000000♠', {'-1.44413'})
suite:assertSortKeyEquals('2999808098000000000♠', {'-1.91902'})
suite:assertSortKeyEquals('2999859255000099999♠', {'-1.40745'})
suite:assertSortKeyEquals('2999843736000000000♠', {'-1.56264'})
suite:assertSortKeyEquals('2999827169999900000♠', {'-1.72840'})
suite:assertSortKeyEquals('2999883714000000000♠', {'-1.16286'})
suite:assertSortKeyEquals('2999868761000000000♠', {'-1.31239'})
suite:assertSortKeyEquals('2999852838000000000♠', {'-1.47162'})
suite:assertSortKeyEquals('2999868770000000000♠', {'-1.31230'})
suite:assertSortKeyEquals('2999830765000000000♠', {'-1.69235'})
suite:assertSortKeyEquals('2999853891000000000♠', {'-1.46109'})
suite:assertSortKeyEquals('2999802909000000000♠', {'-1.97091'})
suite:assertSortKeyEquals('2999885366000000000♠', {'-1.14634'})
suite:assertSortKeyEquals('2999868503000099999♠', {'-1.31497'})
suite:assertSortKeyEquals('2999878958000000000♠', {'-1.21042'})
suite:assertSortKeyEquals('2999809164000000000♠', {'-1.90836'})
suite:assertSortKeyEquals('2999813730999900000♠', {'-1.86269'})
suite:assertSortKeyEquals('2999853354000000000♠', {'-1.46646'})
suite:assertSortKeyEquals('2999879520000000000♠', {'-1.2048'})
suite:assertSortKeyEquals('2999815849000000000♠', {'-1.84151'})
suite:assertSortKeyEquals('2999816592999900000♠', {'-1.83407'})
suite:assertSortKeyEquals('2999816199999999999♠', {'-1.8380'})
suite:assertSortKeyEquals('2999846745999999999♠', {'-1.53254'})
suite:assertSortKeyEquals('2999827244000000000♠', {'-1.72756'})
suite:assertSortKeyEquals('2999880946000000000♠', {'-1.19054'})
suite:assertSortKeyEquals('2999884517000000000♠', {'-1.15483'})
suite:assertSortKeyEquals('2999835007000000000♠', {'-1.64993'})
suite:assertSortKeyEquals('2999846484000000000♠', {'-1.53516'})
suite:assertSortKeyEquals('2999806955999999999♠', {'-1.93044'})
suite:assertSortKeyEquals('2999859477000000000♠', {'-1.40523'})
suite:assertSortKeyEquals('2999822357000000000♠', {'-1.77643'})
suite:assertSortKeyEquals('2999861380000000000♠', {'-1.38620'})
suite:assertSortKeyEquals('2999803785000000000♠', {'-1.96215'})
suite:assertSortKeyEquals('2999839579000000000♠', {'-1.60421'})
suite:assertSortKeyEquals('2999880180000000000♠', {'-1.1982'})
suite:assertSortKeyEquals('2999806631999999999♠', {'-1.93368'})
suite:assertSortKeyEquals('2999823021999999999♠', {'-1.76978'})
suite:assertSortKeyEquals('2999860285000000000♠', {'-1.39715'})
suite:assertSortKeyEquals('2999852208000000000♠', {'-1.47792'})
suite:assertSortKeyEquals('2999831273000000000♠', {'-1.68727'})
suite:assertSortKeyEquals('2999859169000000000♠', {'-1.40831'})
suite:assertSortKeyEquals('2999859386999999999♠', {'-1.40613'})
suite:assertSortKeyEquals('2999830962000000000♠', {'-1.69038'})
suite:assertSortKeyEquals('2999809106000000000♠', {'-1.90894'})
suite:assertSortKeyEquals('2999829698000000000♠', {'-1.70302'})
suite:assertSortKeyEquals('2999842112000000000♠', {'-1.57888'})
suite:assertSortKeyEquals('2999803866000000000♠', {'-1.96134'})
suite:assertSortKeyEquals('2999848160000000000♠', {'-1.51840'})
suite:assertSortKeyEquals('2999814706999999999♠', {'-1.85293'})
suite:assertSortKeyEquals('2999858808000000000♠', {'-1.41192'})
suite:assertSortKeyEquals('2999846336000000000♠', {'-1.53664'})
suite:assertSortKeyEquals('2999882794000000000♠', {'-1.17206'})
suite:assertSortKeyEquals('2999888027000000000♠', {'-1.11973'})
suite:assertSortKeyEquals('2999827434000000000♠', {'-1.72566'})
suite:assertSortKeyEquals('2999844643999999999♠', {'-1.55356'})
suite:assertSortKeyEquals('2999869137000099999♠', {'-1.30863'})
suite:assertSortKeyEquals('2999807900000000000♠', {'-1.92100'})
suite:assertSortKeyEquals('2999887309000000000♠', {'-1.12691'})
suite:assertSortKeyEquals('2999872792000099999♠', {'-1.27208'})
suite:assertSortKeyEquals('2999850895000000000♠', {'-1.49105'})
suite:assertSortKeyEquals('2999855922000000000♠', {'-1.44078'})
suite:assertSortKeyEquals('2999884101000000000♠', {'-1.15899'})
suite:assertSortKeyEquals('2999865620000000000♠', {'-1.34380'})
suite:assertSortKeyEquals('2999818348999999999♠', {'-1.81651'})
suite:assertSortKeyEquals('2999817932000000000♠', {'-1.82068'})
suite:assertSortKeyEquals('2999859042000000000♠', {'-1.40958'})
suite:assertSortKeyEquals('2999822241000000000♠', {'-1.77759'})
suite:assertSortKeyEquals('2999848484000000000♠', {'-1.51516'})
suite:assertSortKeyEquals('2999889907000000000♠', {'-1.10093'})
suite:assertSortKeyEquals('2999847636000000000♠', {'-1.52364'})
suite:assertSortKeyEquals('2999817887000000000♠', {'-1.82113'})
suite:assertSortKeyEquals('2999888719000000000♠', {'-1.11281'})
suite:assertSortKeyEquals('2999865609000000000♠', {'-1.34391'})
suite:assertSortKeyEquals('2999884844000000000♠', {'-1.15156'})
suite:assertSortKeyEquals('2999880704000000000♠', {'-1.19296'})
suite:assertSortKeyEquals('2999830570000000000♠', {'-1.69430'})
suite:assertSortKeyEquals('2999820888000000000♠', {'-1.79112'})
suite:assertSortKeyEquals('2999864803000000000♠', {'-1.35197'})
suite:assertSortKeyEquals('2999802825000000000♠', {'-1.97175'})
suite:assertSortKeyEquals('2999812877999999999♠', {'-1.87122'})
suite:assertSortKeyEquals('2999851981000000000♠', {'-1.48019'})
suite:assertSortKeyEquals('2999813588000000000♠', {'-1.86412'})
suite:assertSortKeyEquals('2999802195000000000♠', {'-1.97805'})
suite:assertSortKeyEquals('2999868210000000000♠', {'-1.3179'})
suite:assertSortKeyEquals('2999852021000000000♠', {'-1.47979'})
suite:assertSortKeyEquals('2999803342000000000♠', {'-1.96658'})
suite:assertSortKeyEquals('2999833189000000000♠', {'-1.66811'})
suite:assertSortKeyEquals('2999866984000000000♠', {'-1.33016'})
suite:assertSortKeyEquals('2999821213000000000♠', {'-1.78787'})
suite:assertSortKeyEquals('2999865300000000000♠', {'-1.34700'})
suite:assertSortKeyEquals('2999859967000000000♠', {'-1.40033'})
suite:assertSortKeyEquals('2999834131000000000♠', {'-1.65869'})
suite:assertSortKeyEquals('2999801709999999999♠', {'-1.98290'})
suite:assertSortKeyEquals('2999847819000000000♠', {'-1.52181'})
suite:assertSortKeyEquals('2999856814999999999♠', {'-1.43185'})
suite:assertSortKeyEquals('2999846078000000000♠', {'-1.53922'})
suite:assertSortKeyEquals('2999808230000000000♠', {'-1.91770'})
suite:assertSortKeyEquals('2999813456000000000♠', {'-1.86544'})
suite:assertSortKeyEquals('2999884378000000000♠', {'-1.15622'})
suite:assertSortKeyEquals('2999853206000000000♠', {'-1.46794'})
suite:assertSortKeyEquals('2999889793000000000♠', {'-1.10207'})
suite:assertSortKeyEquals('3000764860000000000♠', {'-0.23514'})
suite:assertSortKeyEquals('2999809736000000000♠', {'-1.90264'})
suite:assertSortKeyEquals('2999824682999999999♠', {'-1.75317'})
suite:assertSortKeyEquals('2999806694000000000♠', {'-1.93306'})
suite:assertSortKeyEquals('2999848903000000000♠', {'-1.51097'})
suite:assertSortKeyEquals('2999817080000000000♠', {'-1.8292'})
suite:assertSortKeyEquals('3000703210000000000♠', {'-0.29679'})
suite:assertSortKeyEquals('2999839945999900000♠', {'-1.60054'})
suite:assertSortKeyEquals('2999889102000099999♠', {'-1.10898'})
suite:assertSortKeyEquals('2999840518999999999♠', {'-1.59481'})
suite:assertSortKeyEquals('3000128000000000000♠', {'-0.8720'})
suite:assertSortKeyEquals('2999867865000099999♠', {'-1.32135'})
suite:assertSortKeyEquals('3000327959999999999♠', {'-0.67205'})
suite:assertSortKeyEquals('2999883204000099999♠', {'-1.16796'})
end
return suite