Module:Number table sorting/testcases

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,	'&#x26;minus;1') suite:assertParsedNumberEquals(1e-1,	'1e−1') suite:assertParsedNumberEquals(1e-1,	'1e&#x26;minus;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