exponentiatedBy.js 123 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604
  1. if (typeof Test === 'undefined') require('../tester');
  2. Test('exponentiatedBy', function () {
  3. var t = function (expected, n, exp) {
  4. Test.areEqual(expected, new BigNumber(n).exponentiatedBy(exp).valueOf());
  5. };
  6. Test.areEqual(BigNumber.prototype.exponentiatedBy, BigNumber.prototype.pow);
  7. BigNumber.config({
  8. POW_PRECISION: 0,
  9. DECIMAL_PLACES: 20,
  10. ROUNDING_MODE: 4,
  11. RANGE: 1E9,
  12. EXPONENTIAL_AT: [-7, 21]
  13. });
  14. t('2', 2, 1);
  15. t('4', 2, 2);
  16. t('8', 2, 3);
  17. t('16', 2, 4);
  18. t('2048', 2, 11);
  19. t('2147483648', 2, 31);
  20. t('0.25', 2, -2);
  21. t('0.0625', 2, -4);
  22. t('1', 1, 100);
  23. t('0', 0, 1000);
  24. t('27', 3, 3);
  25. t('0.0625', 0.5, 4);
  26. t('0.0625', 2, -4);
  27. // 0
  28. t('1', 0, +0);
  29. t('1', 0, -0);
  30. t('0', 0, 1);
  31. t('0', 0, 2);
  32. t('Infinity', 0, -1);
  33. t('Infinity', 0, -2);
  34. t('NaN', 0, NaN);
  35. t('0', 0, Infinity);
  36. t('Infinity', 0, -Infinity);
  37. t('Infinity', 0, '-123456789012345');
  38. t('Infinity', 0, '-12345678901234567890123456789012345678901234567890');
  39. //-0
  40. t('1', -0, +0);
  41. t('1', -0, -0);
  42. t('-0', -0, 1);
  43. t('0', -0, 2);
  44. t('-Infinity', -0, -1);
  45. t('Infinity', -0, -2);
  46. t('NaN', -0, NaN);
  47. t('0', -0, Infinity);
  48. t('Infinity', -0, -Infinity);
  49. t('-Infinity', -0, '-123456789012345');
  50. t('Infinity', -0, '-12345678901234567890123456789012345678901234567890');
  51. // 1
  52. t('1', 1, +0);
  53. t('1', 1, -0);
  54. t('1', 1, 1);
  55. t('1', 1, 2);
  56. t('1', 1, -1);
  57. t('1', 1, -2);
  58. t('NaN', 1, NaN);
  59. t('NaN', 1, Infinity);
  60. t('NaN', 1, -Infinity);
  61. // 2
  62. t('1', 2, +0);
  63. t('1', 2, -0);
  64. t('2', 2, 1);
  65. t('4', 2, 2);
  66. t('0.5', 2, -1);
  67. t('0.25', 2, -2);
  68. t('NaN', 2, NaN);
  69. t('Infinity', 2, Infinity);
  70. t('0', 2, -Infinity);
  71. // -1
  72. t('1', -1, +0);
  73. t('1', -1, -0);
  74. t('-1', -1, 1);
  75. t('1', -1, 2);
  76. t('-1', -1, -1);
  77. t('1', -1, -2);
  78. t('NaN', -1, NaN);
  79. t('NaN', -1, Infinity);
  80. t('NaN', -1, -Infinity);
  81. // -2
  82. t('1', -2, +0);
  83. t('1', -2, -0);
  84. t('-2', -2, 1);
  85. t('4', -2, 2);
  86. t('-0.5', -2, -1);
  87. t('0.25', -2, -2);
  88. t('NaN', -2, NaN);
  89. t('Infinity', -2, Infinity);
  90. t('0', -2, -Infinity);
  91. // NaN
  92. t('1', NaN, +0);
  93. t('1', NaN, -0);
  94. t('NaN', NaN, 1);
  95. t('NaN', NaN, 2);
  96. t('NaN', NaN, -1);
  97. t('NaN', NaN, -2);
  98. t('NaN', NaN, NaN);
  99. t('NaN', NaN, Infinity);
  100. t('NaN', NaN, -Infinity);
  101. // Infinity
  102. t('1', Infinity, +0);
  103. t('1', Infinity, -0);
  104. t('Infinity', Infinity, 1);
  105. t('Infinity', Infinity, 2);
  106. t('0', Infinity, -1);
  107. t('0', Infinity, -2);
  108. t('NaN', Infinity, NaN);
  109. t('Infinity', Infinity, Infinity);
  110. t('0', Infinity, -Infinity);
  111. // -Infinity
  112. t('1', -Infinity, +0);
  113. t('1', -Infinity, -0);
  114. t('-Infinity', -Infinity, 1);
  115. t('Infinity', -Infinity, 2);
  116. t('-0', -Infinity, -1);
  117. t('0', -Infinity, -2);
  118. t('NaN', -Infinity, NaN);
  119. t('Infinity', -Infinity, Infinity);
  120. t('0', -Infinity, -Infinity);
  121. t('4096', '8', 4);
  122. t('-1.331', '-1.1', 3);
  123. t('5.125696', '-2.264', 2);
  124. t('6.7266e-7', '6.7266E-7', 1);
  125. t('1', '-1', 8);
  126. t('4142779.6499215776', '21.06', 5);
  127. t('731.1616', '-5.2', 4);
  128. t('1', '61818', 0);
  129. t('3.2', '3.2', 1);
  130. t('5.4139923025768140625e-41', '-1.945E-7', 6);
  131. t('1280630.81718016', '5.8', 8);
  132. t('3965.318943552', '15.828', 3);
  133. t('53.721', '53.721', 1);
  134. t('1', '-1.9', 0);
  135. t('4.58357323731267363492522744606954913014016e-39', '-0.0000161306', 8);
  136. t('-8560814308.6108448224', '-96.94', 5);
  137. t('4.4127502627834341562081e-74', '-6.77E-10', 8);
  138. t('79327261142.56790234534719652175488087744161', '23.0371', 8);
  139. t('3.101121e-38', '1.761E-19', 2);
  140. t('1', '-1', 4);
  141. t('6.23201296e-28', '-1.58E-7', 4);
  142. t('-8.50893402176e-19', '-9.476E-7', 3);
  143. t('16', '4', 2);
  144. t('90368789.0625', '-97.5', 4);
  145. t('1', '-112.8', 0);
  146. t('4.122181458338334221291398681640625e+27', '40042.5', 6);
  147. t('5.94467302491009e+21', '1290.0', 7);
  148. t('5.6599836943004175019970957e+25', '141437', 5);
  149. t('9', '3', 2);
  150. t('69.75757441', '1.7', 8);
  151. t('1e-42', '0.0000010', 7);
  152. t('8', '8', 1);
  153. t('-2.5090696333749305038864384e+25', '-664', 9);
  154. t('24794.911296', '5.4', 6);
  155. t('7077398515.1515538432', '93.32', 5);
  156. t('-1.4520042511984659693722813984375e-130', '-2.8295E-19', 7);
  157. t('4', '4', 1);
  158. t('372088627687.312953646321', '781.019', 4);
  159. t('-5.3864523289963490660381317787272961329536e-23', '-0.000658806', 7);
  160. t('-1.8', '-1.8', 1);
  161. t('1', '-5.9', 0);
  162. t('1', '2', 0);
  163. t('-6.4097340625', '-1.45', 5);
  164. t('170859375', '15', 7);
  165. t('595732589817199.440265999920799232', '43.82', 9);
  166. t('1.7080198121677824e+36', '-4200', 10);
  167. t('1', '658.8', 0);
  168. t('136.460505366756569881', '2.269', 6);
  169. t('-1', '-1', 3);
  170. t('236007.159691873761', '-22.041', 4);
  171. t('1', '-1.1', 0);
  172. t('287803125756.085809269657829376', '18.76', 9);
  173. t('4.1069049025e-34', '-2.02655E-17', 2);
  174. t('-8', '-2', 3);
  175. t('-5.0787635527751e-52', '-5.51E-11', 5);
  176. t('-8', '-2', 3);
  177. t('1704883919.2576', '203.2', 4);
  178. t('22106814.0740608', '11.2', 7);
  179. t('3.7481851264119295287828498195966142655968201e+23', '227.71', 10);
  180. t('-3', '-3', 1);
  181. t('5.308416e-54', '4.8E-14', 4);
  182. t('1', '-1', 8);
  183. t('1', '-4.1', 0);
  184. t('398', '398', 1);
  185. t('1', '1.17981E-18', 0);
  186. t('255896509713547.45824', '761.4', 5);
  187. t('16807', '7', 5);
  188. t('1', '232.6', 0);
  189. t('2.67066142562472466573674890357652039841e+30', '-6358.1', 8);
  190. t('390625', '-5', 8);
  191. t('85766121', '21.0', 6);
  192. t('2206809.987903620081317314341735861401', '4.309', 10);
  193. t('6.1917364224e-80', '-1.2E-8', 10);
  194. t('64', '-2', 6);
  195. t('-1', '-1', 7);
  196. t('-39.8778220049', '-2.09', 5);
  197. t('892496818.033068251283537321', '-31.029', 6);
  198. t('1.1289646949223432899980166202016362758071452681629968849e+25', '320.087', 10);
  199. t('1932991.455312009', '124.569', 3);
  200. t('635307227133823.258624', '-293.2', 6);
  201. t('784', '-28', 2);
  202. t('-43361725294765860565.175323475675341312', '-152.02', 9);
  203. t('1589.6036888689492933115234375', '4.36775', 5);
  204. t('1', '-18.4', 0);
  205. t('20832.8532313216810321678408500840248440324096', '3.46612', 8);
  206. t('6.5536', '-1.6', 4);
  207. t('174729381067.247616', '5590.56', 3);
  208. t('-4.084101e-14', '-0.0021', 5);
  209. t('7.46848810699576790739263937619996819197249e+21', '153.93', 10);
  210. t('2.09881105970752e-16', '0.0000059428', 3);
  211. t('23298085122481', '-169', 6);
  212. t('1', '-4.095E-11', 0);
  213. t('30016915.773120638290557721', '17.629', 6);
  214. t('16807', '7', 5);
  215. t('130666515.5580240243056896', '-10.34', 8);
  216. t('-5.97080224872032e-91', '-9.02E-19', 5);
  217. t('-3450.25251', '-5.1', 5);
  218. t('43046721', '-9', 8);
  219. t('1', '1', 1);
  220. t('3545.66529682492339392399', '5.1279', 5);
  221. t('3396.171616714297', '15.0313', 3);
  222. t('4.622674003397519975764019459730496e+33', '-408146', 6);
  223. t('1', '918.0', 0);
  224. t('7.59375', '1.5', 5);
  225. t('-67822.3072849', '-4.90', 7);
  226. t('3.7588592026706176e-104', '-1.18E-13', 8);
  227. t('1', '1', 3);
  228. t('5237990.22862336', '47.84', 4);
  229. t('11698.5856', '10.4', 4);
  230. t('110075314176', '24', 8);
  231. t('3.24210716131761936e-27', '2.38620E-7', 4);
  232. t('9', '3', 2);
  233. t('14641', '121', 2);
  234. t('62.81386652381601821841', '2.81523', 4);
  235. t('1', '8', 0);
  236. t('4.29981696e-160', '-1.2E-20', 8);
  237. t('1.692652673311521044295612689449216e-7', '-0.14242', 8);
  238. t('1', '-19.5', 0);
  239. t('1', '8621.8', 0);
  240. t('7.907e-7', '7.907E-7', 1);
  241. t('1.61051', '1.1', 5);
  242. t('1.553e-14', '1.553E-14', 1);
  243. t('858461358961485360081', '171171', 4);
  244. t('64', '-2', 6);
  245. t('-2.9', '-2.9', 1);
  246. t('-2.0661046784e-179', '-1.4E-20', 9);
  247. t('39.0625', '-2.5', 4);
  248. t('-391460020121.8781037', '-45.3', 7);
  249. t('-80.1', '-80.1', 1);
  250. t('3.5831808', '1.2', 7);
  251. t('41.08469075197275390625', '-1.45', 10);
  252. t('-128', '-2', 7);
  253. t('-5277043158.170301334052958483', '-12.03', 9);
  254. t('100.31024025', '10.0155', 2);
  255. t('262144', '4', 9);
  256. t('-2.66450474490105494016e-70', '-1.86E-8', 9);
  257. t('1.58541338622748269695158625134808009096449e+21', '-131.83', 10);
  258. t('1.69e-14', '1.3E-7', 2);
  259. t('81', '-3', 4);
  260. t('1.3979045762098993055105649e+25', '327', 10);
  261. t('-2.8334269484119140625e-17', '-0.0145', 9);
  262. t('8455365204.69607', '96.7', 5);
  263. t('4.826809', '-1.3', 6);
  264. t('-4.2027e-14', '-4.2027E-14', 1);
  265. t('-3671885391606530844.02199', '-5163.9', 5);
  266. t('1.4833', '1.4833', 1);
  267. t('1078702060.96', '32843.6', 2);
  268. t('16384', '4', 7);
  269. t('0.000041046707114327285209693732389121', '-0.185729', 6);
  270. t('9.04141586678594150656e-76', '1.73404E-19', 4);
  271. t('7', '7', 1);
  272. t('-5.408864751631992324037382349788164206309e+39', '-25989', 9);
  273. t('3.6213725246884329693766314512921496510839580087890625e-58', '0.00000180255', 10);
  274. t('51.58686976', '-2.68', 4);
  275. t('32562222.2784028467808485507564561204461862636001', '5.6399', 10);
  276. t('1.5269627878770126091369423832739776731492122624e-24', '-0.0041532', 10);
  277. t('2.27128515349184346452713121698128944001e-82', '-6.849E-9', 10);
  278. t('788.12330352545906108118941549114886272', '2.59298', 7);
  279. t('-128', '-2', 7);
  280. t('2.43585613160298150834272926486523151679435546875e+29', '1841.55', 9);
  281. t('3573226485.213841', '39.1', 6);
  282. t('5.0912', '5.0912', 1);
  283. t('1.302260124847515625e-102', '1.0450E-17', 6);
  284. t('-1097881.796860068547323829', '-4.69', 9);
  285. t('24.137569', '1.70', 6);
  286. t('67.937289638464', '-2.02', 6);
  287. t('-91125', '-45.0', 3);
  288. t('3.5658406477912053139330818066558837890625e-96', '1.17225E-12', 8);
  289. t('5.11226325150500959599107782635087831282590275214649e-160', '-1.17723E-16', 10);
  290. t('67.937289638464', '-2.02', 6);
  291. t('-3125', '-5', 5);
  292. t('-3125', '-5', 5);
  293. t('-2983765.0756983032103435524997723277', '-8.4133', 7);
  294. t('4535877.137495584829386816', '-12.866', 6);
  295. t('256', '-2', 8);
  296. t('-7.9', '-7.9', 1);
  297. t('4.18161601', '1.430', 4);
  298. t('2.3591116836e-38', '-1.53594E-19', 2);
  299. t('6648326359.9150104576', '9.6', 10);
  300. t('65536', '-4', 8);
  301. t('22777216155500625', '-12285', 4);
  302. t('1', '-1.14E-9', 0);
  303. t('1', '7.4', 0);
  304. t('1.21', '1.1', 2);
  305. t('0.248', '0.248', 1);
  306. t('-2187', '-3', 7);
  307. t('1.48996e-23', '-3.86E-12', 2);
  308. t('2.49173e-14', '2.49173E-14', 1);
  309. t('-2738.124199', '-13.99', 3);
  310. t('-2.7044661231722633428249e-63', '-3.0649E-13', 5);
  311. t('0.0000998001', '-0.00999', 2);
  312. t('9', '3', 2);
  313. t('-331.370935156703232', '-3.192', 5);
  314. t('2.611824102393094023763', '1.147', 7);
  315. t('-527', '-527', 1);
  316. t('27', '3', 3);
  317. t('2.313441e-34', '3.90E-9', 4);
  318. t('1', '-8.00148E-16', 0);
  319. t('6.427669793976056365481141274099681e+25', '-1682.7', 8);
  320. t('-27', '-3', 3);
  321. t('256', '-2', 8);
  322. t('59049', '-3', 10);
  323. t('8.7713801081173367580884490451432713332434379776e+26', '494.66', 10);
  324. t('20234327779106168.4159474599729911316138226499265176167424', '42.7178', 10);
  325. t('-27', '-3', 3);
  326. t('0.009411328144', '-0.097012', 2);
  327. t('349044.64', '-590.8', 2);
  328. t('4750.104241', '-4.1', 6);
  329. t('-173928970714601588962.8103429', '-778.9', 7);
  330. t('3656158440062976', '-36', 10);
  331. t('6.12220032e+22', '1800', 7);
  332. t('1', '3.4', 0);
  333. t('9.99997000003000028999940000030000299999700000000001e+29', '9999990000.0000001', 3);
  334. t('9.70097321773035876225154576358130561e-37', '0.000031503', 8);
  335. t('9.851127637605409e-117', '-4.63E-20', 6);
  336. t('1', '-1.4E-9', 0);
  337. t('-4.52470110728381829e-7', '-0.00767709', 3);
  338. t('282475249', '7.0', 10);
  339. t('16651779441254092864', '1598', 6);
  340. t('729', '3', 6);
  341. t('6.90946358996746999370693799867018948630842395035736169049e-104', '-4.82997E-11', 10);
  342. t('684.84796416', '26.1696', 2);
  343. t('-1', '-1', 5);
  344. t('1', '-6', 0);
  345. t('0.0000078310985281', '-0.23', 8);
  346. t('2.274064', '-1.508', 2);
  347. t('3.04122555034158459939649e-47', '-0.0000223', 10);
  348. t('696452982073287.871843324909094936562277581368328192', '44.5872', 9);
  349. t('-7.5151448e-29', '-4.22E-10', 3);
  350. t('1', '6', 0);
  351. t('-12.708', '-12.708', 1);
  352. t('70', '70', 1);
  353. t('2187', '3', 7);
  354. t('-1.628413597910449e-174', '-4.9E-20', 9);
  355. t('-6.312457192887951173182283446626151709594241e-66', '-5.6961E-8', 9);
  356. t('0.000299069043583441159212021318210939', '0.4059', 9);
  357. t('15.995353981724701', '1.741', 5);
  358. t('1', '97857', 0);
  359. t('0.221585791441', '-0.470729', 2);
  360. t('1', '52.0023', 0);
  361. t('-26015680550432', '-482', 5);
  362. t('22903.7956', '151.34', 2);
  363. t('6.561e-17', '-8.1E-9', 2);
  364. t('-93189625398108974.44387339079552', '-265.58', 7);
  365. t('-3086125724460522.34468469084288', '-163.22', 7);
  366. t('0.0000051', '0.0000051', 1);
  367. t('19683', '3', 9);
  368. t('-2.4507253464874125175251e+22', '-30051', 5);
  369. t('-38.907147732329430154371456512', '-1.502', 9);
  370. t('4.68733667816790896452997907438948199465216e+41', '161758', 8);
  371. t('64', '-2', 6);
  372. t('27541696650101.74182563635028557824', '-22.08', 10);
  373. t('1.352771823277379852935844331805603817270014056494234420224e-23', '-0.00516562', 10);
  374. t('1', '1', 4);
  375. t('-2350072823968', '-298', 5);
  376. t('8941.5936', '-94.56', 2);
  377. t('97241.5', '97241.5', 1);
  378. t('6.93207873781332929149e-50', '9.49E-8', 7);
  379. t('-59049', '-9', 5);
  380. t('-8882.144880086754771640625', '-3.665', 7);
  381. t('8100981934880.472', '20083.8', 3);
  382. t('16', '4.0', 2);
  383. t('6.561e-49', '-9.00E-13', 4);
  384. t('-446592952.353220867168501', '-53.701', 5);
  385. t('-3.2466525536194576823494051652634346881e-125', '-1.47210E-14', 9);
  386. t('3.89751', '3.89751', 1);
  387. t('3.8443359375e-107', '1.5E-12', 9);
  388. t('493.039', '7.9', 3);
  389. t('-16807', '-7', 5);
  390. /*
  391. t('-4.7471727261300877329502034895519256591796875e+34', '-7127.5', 9);
  392. t('49', '-7', 2);
  393. t('1.27e-12', '1.27E-12', 1);
  394. t('30373391.06115737305088', '11.72', 7);
  395. t('1', '-1', 6);
  396. t('-19349.17632', '-7.2', 5);
  397. t('361', '19.0', 2);
  398. t('1', '0', 0);
  399. t('-10077696', '-6', 9);
  400. t('42180.533641', '5.9', 6);
  401. t('38.443359375', '1.5', 9);
  402. t('1643032', '118', 3);
  403. t('16', '-2', 4);
  404. t('1962.49', '-44.3', 2);
  405. t('640.09', '-25.3', 2);
  406. t('8693.75638483077329986588967330173480782272550321318049', '-2.47697', 10);
  407. t('8105445187812500000', '6050', 5);
  408. t('3106365092236328976', '41982', 4);
  409. t('1.9e-18', '1.9E-18', 1);
  410. t('1388437454689.837102639637015104', '105.622', 6);
  411. t('217.67', '217.67', 1);
  412. t('-1', '-1', 1);
  413. t('-40.84101', '-2.1', 5);
  414. t('1.542564e-12', '-0.0000012420', 2);
  415. t('-1.18009517625e-37', '-4.9050E-13', 3);
  416. t('5549069137356750625', '-48535', 4);
  417. t('1172.7599043051', '4.11', 5);
  418. t('1.024e-39', '-3.2E-20', 2);
  419. t('64', '-2', 6);
  420. t('9765625', '-5', 10);
  421. t('10174708482.4576', '317.6', 4);
  422. t('4596.544052624786837880243001942570369016159210753', '2.55233', 9);
  423. t('4096', '8', 4);
  424. t('729', '-3', 6);
  425. t('19034163', '267.0', 3);
  426. t('7.13342911662882601e-183', '-6.1E-19', 10);
  427. t('-8', '-2', 3);
  428. t('7.458836077824580594735138491702651752566987e+24', '580.27', 9);
  429. t('-1.488656882033767469315065509517197312e-126', '-1.0452E-14', 9);
  430. t('-22512044836648447.5871232', '-216.8', 7);
  431. t('1', '1.0', 2);
  432. t('-1048576', '-16.0', 5);
  433. t('2.96566225198439749053708901e+26', '196981', 5);
  434. t('387361397731.0852349972153162834577841407848071071001', '-14.4149', 10);
  435. t('2.5937424601', '1.1', 10);
  436. t('1', '-132.84', 0);
  437. t('1', '4642.2', 0);
  438. t('-7.3499661205554469210497482752e+28', '-1612', 9);
  439. t('2.56745903401e-35', '-5.06701E-18', 2);
  440. t('-8.0416926477372443174045490389e-14', '-0.013469', 7);
  441. t('481.890304', '2.8', 6);
  442. t('-2.0079766520165347109375e+22', '-1535', 7);
  443. t('-3.34255384e-7', '-0.00694', 3);
  444. t('65536', '-4', 8);
  445. t('15700.150160096030724096', '5.004', 6);
  446. t('3', '3', 1);
  447. t('-1024', '-4.0', 5);
  448. t('1', '-0.0000026', 0);
  449. t('3.75e-11', '3.75E-11', 1);
  450. t('-2.197e-33', '-1.3E-11', 3);
  451. t('850260.560009615038237114368', '7.032', 7);
  452. t('1.165611915415579117119882256009e-48', '-1.02587E-8', 6);
  453. t('1.874746414628249416823686235041e+30', '-6083', 8);
  454. t('3541035030023585410.9685579776', '-71.6', 10);
  455. t('159873594510682.812023861622308942042241', '59.631', 8);
  456. t('964', '964', 1);
  457. t('1', '7', 0);
  458. t('1', '1', 7);
  459. t('959554720546.9939335182868736', '-31.46', 8);
  460. t('390625', '5', 8);
  461. t('8.58117156760783434066136732224e-67', '9.7482E-12', 6);
  462. t('1', '1.10E-19', 0);
  463. t('2.7206534396294947e-38', '0.000067', 9);
  464. t('-2.7993930117296371229848579851719540736e+30', '-22365.6', 7);
  465. t('5531947943217503125', '5605', 5);
  466. t('2.77921878692682183940201e+33', '2210', 10);
  467. t('-1.34775901066369285240390603125e+29', '-669765', 5);
  468. t('1', '1', 8);
  469. t('-187.539', '-187.539', 1);
  470. t('114983.567789585767578125', '3.65', 9);
  471. t('1', '1', 6);
  472. t('9.5563709286130016454092290324007041e+28', '-67615.9', 6);
  473. t('2.39576999392237432790890516398336', '-1.1154', 8);
  474. t('-23.924567789936824982851522063', '-1.423', 9);
  475. t('39.4384', '-6.28', 2);
  476. t('46411484401953', '33', 9);
  477. t('3864', '3864', 1);
  478. t('20554002898923904', '214', 7);
  479. t('1', '-481', 0);
  480. t('1073741824', '8', 10);
  481. t('64', '-2', 6);
  482. t('-15633814.156853823', '-6.3', 9);
  483. t('7.9', '7.9', 1);
  484. t('-284.68', '-284.68', 1);
  485. t('1', '92.6', 0);
  486. t('256', '4', 4);
  487. t('-4233837892.359375', '-1617.75', 3);
  488. t('1.01054975167057821704275308297863156222443369140625e+40', '10010.5', 10);
  489. t('4.15867265447116306999621451776e-171', '-9.16E-18', 10);
  490. t('14796.346375', '24.55', 3);
  491. t('0.000003596774583043934673428448834277192142749696', '-0.208684', 8);
  492. t('19619412024963200000', '7220', 5);
  493. t('203.33219575276960518721', '3.77617', 4);
  494. t('2187', '3', 7);
  495. t('-512', '-2', 9);
  496. t('1', '2.4E-15', 0);
  497. t('-79', '-79', 1);
  498. t('-281399112371155271', '-311', 7);
  499. t('2.0441457156547956272121e-32', '-0.000005229', 6);
  500. t('164546156906.7655853425459503979807203014092043691201', '13.2321', 10);
  501. t('-46.13', '-46.13', 1);
  502. t('191707312997281', '-61', 8);
  503. t('1019.4513038883292709315124224', '3.99644', 5);
  504. t('1', '3', 0);
  505. t('1', '-44.4', 0);
  506. t('545516.0701056', '6.6', 7);
  507. t('-4177', '-4177', 1);
  508. t('358050', '358050', 1);
  509. t('229.97659811731444699830505796029057408', '2.17462', 7);
  510. t('2.6108288368639387032909799e-70', '1.21159E-14', 5);
  511. t('4325169905.757', '1629.3', 3);
  512. t('122.5', '122.50', 1);
  513. t('1', '-0.0001858', 0);
  514. t('3.17145729137553882999930496108165023687245824e+34', '2819.2', 10);
  515. t('-1', '-1', 3);
  516. t('-49.358166606568', '-3.6682', 3);
  517. t('-3.0228559084421978498330001408', '-1.17120', 7);
  518. t('24.76099', '1.9', 5);
  519. t('-17.576', '-2.6', 3);
  520. t('-20', '-20', 1);
  521. t('-1', '-1', 1);
  522. t('30804.095140913337149030892729572601', '2.811', 10);
  523. t('15625', '-5', 6);
  524. t('117649', '7', 6);
  525. t('27', '3', 3);
  526. t('-65939.264', '-40.4', 3);
  527. t('4.56976e-27', '2.6E-7', 4);
  528. t('3052847.6176', '41.8', 4);
  529. t('18440755681.001536', '51.4', 6);
  530. t('693.43957', '3.7', 5);
  531. t('-10187688835060.27636096761856', '-72.16', 7);
  532. t('-290.1', '-290.1', 1);
  533. t('-2097152', '-8', 7);
  534. t('63.582', '63.582', 1);
  535. t('-92713.643576', '-45.26', 3);
  536. t('58778272623218534616.288838935169', '1971.83', 6);
  537. t('606071.1605323', '6.7', 7);
  538. */
  539. t('49478904727733663575.051582184770446498259493718971258958961046708278746324459568256251259157238318185790764612200843144821137580796334089638532287323488178607687532035618686192601481827902773410791645057647691925965756808571011539462511641266331263543939501901006735272661302011976870015625991111560481188335365459566760212844848008439578745211448299643484693328447464460429576345111356618402802188681216', '-1.60380', 96);
  540. t('1.17647340482075248419254427344376045314316013640615098803852731448350843468375614975229837000370025634765625e+81', '-1312.5', 26);
  541. t('7.0251816660378376802360594609084621021532608383100803495211258733288152327693358768741786747381360859889479870288549139760601303377485234176e+87', '-2391.76', 26);
  542. t('85.717123455378345835968064', '2.0998', 6);
  543. t('7.8189586726154755713303078223442071754329e+40', '187', 18);
  544. t('9.145283009860369082115124525217171723626500086794105722560960199131059600008740516579605574000306840952542591838726900925804876261491646795282472377021036430500854987560433039755667787412917103148092128371355207976203112911565783359385741850905996481e+41', '-6.4113', 52);
  545. t('2.05766289512932241998482631797034621069017517962263802542480365981262536498089637707776e+86', '26', 61);
  546. t('98190573319064.214163360748608660888346857427032348178060040012159036566957731914573312588336568078808326155328828092023492584783227218123097647282496144318320115860427194595696623235777670393347299594686642872330179664094829207439052010438267983369137644871417464586087393161049', '-1.6293', 66);
  547. t('1.392598192044227355988772015943279484446048049140235246881310663971517522995991944491655264930301742862780134225258915488062891063359354742689683631308848403923615202977361e+171', '109', 84);
  548. t('1.5469996446227372120183605762031536360861258626528255060075983309687394111102266369973688377324297491658050323998067994446097153176237864040180207896595918522219595889946775556217e+64', '13.37', 57);
  549. t('417.53905413413116367045797', '1.3', 23);
  550. t('1.624290817967129588779052613030846258081e+39', '79677', 8);
  551. t('6.613998972307900952958925063693292646912001305426127894831260851822286968476028114198011923029274945784114379928252947652708965396453170282038903005249536e-263', '0.00000908', 52);
  552. t('17179869184', '2', 34);
  553. t('9.7756260861181096053516970094092017016032995016954767790504110039917368643756356818044285001644705953440430468819149794081183248976623767084182482857941562203266736374606395800621259352114936429301555533971456e+141', '131.6', 67);
  554. t('4294967296', '2', 32);
  555. t('131621703842267136', '-6', 22);
  556. t('7.9228162514264337593543950336e+28', '2', 96);
  557. t('-1', '-1', 41);
  558. t('5.0096959237841976223015468271587016074738912992534254294320102857326166341642003475731604090433896328441157235303061782495282575910872792923981113856240569836427242032573810996210128117467500761653330557379347005097932959928243111015057764620250811725789666461853189934772359267843261626881e+197', '140.9', 92);
  559. t('2.404907604760405225358828131112281116032698930082119547604265954848982041717359046106827774346003151904701415424e+111', '32', 74);
  560. t('2.69721605590607563262106870407286853611938890184108047911269431464974473521e+22', '-2.7', 52);
  561. t('18.174', '18.174', 1);
  562. t('1.36891479058588375991326027382088315966463695625337436471480190078368997177499076593800206155688941388250484440597994042813512732765695774566001e+43', '2.7', 100);
  563. t('1.25668660115116491467662710973545031109788152235501170924313646703423681882164573441433515503588152722789494580469301248e+72', '34.2', 47);
  564. t('1.56438420672167084519979701497174364597412396629019101951505612890666817698608365177006994887516584111152450449887451995069033040411213741933147153316594951835865202053237255800944727011696760985308614176976019463960094165747239428884158901702435389388132623055120422260406418255249330452909476806656e+299', '1308', 96);
  565. t('-1.366174308182025187777528918308146941320736787278460889575749404867695325446359807161410602138908197731224033169833047036778978022709170976735608988099868310813030127497812540494011203545816852288666658682985428600019476831917843e+58', '-4.83', 85);
  566. t('2.966806088806219456880539423158152815514806645521282752514016241570099725287916962770395912230014801025390625e+28', '-5.15', 40);
  567. t('8589934592', '2', 33);
  568. t('3.92012913845865034844198476089476040042936801910400390625e+28', '-10.5', 28);
  569. t('6.26204859896956162110746451442214931102399028194694661966016701109504299345041406486245804277657094315831017177064948219797627444240188709011456e+72', '10.6', 71);
  570. t('-7.4010922571797388655581604684527426699437277457499992187268655958229686891933340740793991046504324130585438416249947232728346081088006867719609592595610095069331022367447133421906806310032697675369409918188139600222703781482594772971289070262621142441874895437059567046831661495957273728351051362944953711082346089727330717918651409489163662706555003193741825901442633007312863953564385259087744338361955671878877893732351367361843585968017578125e+364', '-31956.5', 81);
  571. t('6.192736416792149755132475219493405669399778858602560762871794455317449717448580836229845787580888290473782381059983387805505374173265513677435445890655671110840202944429668728225878544903602239e-270', '0.000319', 77);
  572. t('2.321827472731847506187210910989207010589651530892302311791322352855446782760907718473019283821056753242967949096791603718944064726033664384082861996009850744961116407128920163494805886357836270766853975184523023642990429569615539676822828070446559161161124635674389704743948383107212919966543969471039720464085404567773913503635201792672811032312063265454094042341369554833714443413857449688164664657173315113983032808001e+220', '159.83', 100);
  573. t('4.953736650985698001275587761883016173298229503362193331584010106486052779761329981195411366329068322677550960044762649449732919438910119549694010717647780952298320287365138145210431380601324547389442337520392258009e+27', '-2.797', 62);
  574. t('-338678221586896.02233451034424755534030583977124338116841050703894756829829935320421996887', '-2.47', 37);
  575. t('-3.181403788572786716059998378326698266679069780899509454959934125355133265193e-226', '-0.0000057', 43);
  576. t('2.2481244795444847556680083178853571141700204725943661497539185751725919215990484669445118877448657555202573745174750533635052209260608084995835891707958259234271442982681066779696130155696868114346639852814575962457281749995256623713554214237458259176913852401064878760784275382146658972801541462348779288776844691139086889351786721e+179', '229.03', 76);
  577. t('1.09544203269304121665791452848994634135137143229447033238750572549632571476402641497730897157401184093614916314911584167715115647604065370616785146866296916632437569033863034458711783186506727022529378159297811462454675308057682780534190256280910865229376785975491743196806996272790525705427972427376758443312371576466422700240638756574402393677191376501159420836822933903938571935476091044876631814554274289087939783553959776485376e+31', '-2.0436', 100);
  578. t('-18437563379.178327736384102280592359424', '-2.4', 27);
  579. t('-9.9938258857146531850367031e-85', '-0.0000000231', 11);
  580. /*
  581. t('2.45673281757908854552870925433471410070214400334169452520459965621921664416713287959754208329284439619509099451538227140937811535553399003066102795766261859069268099803838998995339331311912275460846260697085073312049264485545427543086425664188963659692922005683716104197951717376e+78', '-6.08', 100);
  582. t('-1.270210714458885172439348525985048001607770314656078008119108251089872343340175575576722621917724609375e+24', '-4.15', 39);
  583. t('1209.5', '1209.5', 1);
  584. t('1220703125', '5.0', 13);
  585. t('2.2282376678496302739664556233420633e-74', '0.000000006553', 9);
  586. t('2.218088039378445352751296336694731578146959285984085545221611060271486214348079661041003283535646898758718143100202167951881147633680620698026648392938984778649e+159', '893', 54);
  587. t('2.10030968607618842407969732186669026418164521383378412734005003194384320968659491239802049483617846390172315534146347011074332799904332281963786542263761412332465321180532568441958976108339460464558490863953503079336356338135760894630619724493454777575270501253639608281424341291617698518141921861556244699796561591915201261004739209197698527393965924844797945393999012105081714167479170123104969e-75', '-0.16053', 94);
  588. t('2.5812157101662325924336748344070521698410946762506012782923924916938485004644329931151074914373301798478548152505612780265485671672098712055026947247254600014458282820627468534250894082132928621697659949721616819635951012296371246281717642419683893063297904005186874144169940879165882368e+286', '25488', 65);
  589. t('-15.625', '-2.5', 3);
  590. t('2.9729685996261878754343622542880008372085710279050331084451543295302017053107644303792930816e+59', '-72.2', 32);
  591. t('8.15730721', '1.3', 8);
  592. t('1027.334860999330573407176938442293022889', '-1.47', 18);
  593. t('1.20109289910050514343148045475506579676136202628631781424931463646123976128634333627993215283736800191296195442718065238702508520055513255346146658609301480565930380776363581062628797012612519067602295957218821773367819208495782017345400726347727499503218384384326417098721424389373157748956399698521853695814977704822352568748499324367082691064737392226159651276162776412093080580234527587890625e+315', '8679.5', 80);
  594. t('-6.00774319642841528092711102659123449286352750007573133369794363392e-33', '-0.22', 49);
  595. t('-4.399348626310072691340857398671747903319767685984244866658805429802943497233040561059795990923598510826890908258017493538766494536483606174431755682553269424176946343755577041745496403493430254087811474250251864009392456889456030217048416123130922140883015639602300329038985615284964386359900403921860549312983015992252637174331659470716194350399038561704290046291e+177', '-81.31', 93);
  596. t('-3.05410827582876268390180635074883196222812916959850956275590047122226930793718597160851022493537771838978253152932907298258251555751167476560688772053768410645587233357374279876239597797393798828125e-247', '-0.000000217485', 37);
  597. t('5.94029530519133658573841651381893916937282220672559984930445801765696530117833330901747112098660456061962952244422396324466169433806822249922825538552986841011e-19', '0.491', 59);
  598. t('6.30523820693302485362185385323378612453984181696300485861970499164041182778517073604560519798249286847423997356860449832519236757706844668669858983416671702949907296869514603475482872905487176008793424936405673085021973514041591620544995041842415714193527926259387876594710020672351902248919941484928131103515625e+217', '-207.5', 94);
  599. t('1.3437482898194084408359108790569717431056936319064040016470306278420649755238589129250716839755182586596297106623509972801915917688676116852207e-198', '0.0047', 85);
  600. t('-7.2125976851811538835264180669311252876757309817127885777282268797579465235996423577991265862898834402822899090972405912847104748143261578733778979456054998346007864343435284069799588577484912513898046820531311312862161018665360468415091050892814436289818311468501837802070896183140379745282036670643116477155731121958797307187300620339307163520531060733946755523082115115646976e+279', '-767.6', 97);
  601. t('-3.6014175419419889979825978713404525121917028354184157603813105843373968813713708575013260529677555144144724689493141661197266911743582631754736205113266715503341523389605232359965730457026715491821102337726896541765297511282920487936650122950956509166185123335946923710632464810273024751e+116', '-23.51', 85);
  602. t('864441744884.215763637320205869663958329635842919446190153261333597518371076208416885489806126587561695103959519298009135858834566699504679568405218950836778578735139166130606578479646072479355927241854902595925015466294859320621226069690609744261681250304', '1.404', 81);
  603. t('2.1740698194376449374483147468467027620784304276072222988616865620688896e+52', '808.4', 18);
  604. t('3.8358611506121121577937e+22', '113', 11);
  605. t('7.708142065054490966774434895299862856570563111111152865942369472254266622057906176e-375', '0.0000000000000002582', 24);
  606. t('1.697054670829812124918589801369405630774787179949418285317226086899030607907838200923128944336540480137932154797404155642362243064347816887752994688507537824596616056930370261936449615792564115353680658971035397858675806419291627327666883921628766762017e+153', '35.3', 99);
  607. t('-4.710128697246244834921603689e+27', '-9', 29);
  608. t('3.2505902718449668133084058626546515621706592677748264541998335302067693284031047914414370910433910917853346703702752017311701370087768406221174636457161634693311184118695477205673579866365261461786447054994132502457715569269165081396243597525386428206972507983546973520886724081775555138991647659604473279e+52', '6.8159', 63);
  609. t('10125003344964.40019736846338763496828575459544161517257186895064610033021488387585533013795387142569984', '1.4', 89);
  610. t('-1.4631650542473900277009650505078819321358806229e+27', '-26.90', 19);
  611. t('0.000005295825289418576524939548312590198218162176', '0.468', 16);
  612. t('-2.13825209215512828440269455240169347772084407562319954177735966744864590012014618496355742013223900851293500036195697397558882293948621657334016332630442341312358031641684225772703692879077286212410249112292259617578818732032e+224', '-203479518', 27);
  613. t('5.444517870735015415413993718908291383296e+39', '8', 44);
  614. t('-33338.549041729', '-33338.549041729', 1);
  615. t('2.7214030202002235259872217354276868322505756236796101744750922254072943468398158090938361760503196297567571421573431913968089480080443473498108606049915577803053551131894096917430267992139228904833591260925102332702863889641131058350845466180073805176058062062511496305436593986927276878340795001904960142635221849217162104418149855782368706167456898339731322626805338533602069310753044118499679070391659043014863756212342671519561753648641528938961249781667596503442752009505056776106357574462890625e+355', '25403380.775', 48);
  616. t('-134217728', '-8.00', 9);
  617. t('6.4919612772480684272077477598407081955951769084986853540654908040236664132468736e+31', '4.6', 48);
  618. t('-408518.488', '-74.2', 3);
  619. t('2.6122383559387081296537383480965114437482497294603331038492821930754511334614082451247995976011754175948033208350877260508339210350470971773483611262598975948388081226982520139805939801386768827832059816233575763932242012655210850575522139572300856461682889553829554870249034765972111622144e-53', '0.119534', 57);
  620. t('1.88522188856624562372708154656751441041381726119427387599765763695834615013232142421520586436232009071932931843172032205056661409003338693915273301223126561630347970098203184279906247655542800284362476149094060315694708604230353242909365032002466875120342181047689475694706227284673985251088619705863125778538982501735383260557349198668384156297528069830916927729430864813333996813440323955895348081117644429414429531206777610934118661932545955356203081687958272101e+350', '1396953.01', 57);
  621. t('-7.4641079962956705920034912695642465787383566977879750308559196923222402311665962335871104200586964218306687527948988363660881738310704671349709669487610144905689251123467238632699575375039822099609504292687413249132266915915320573775450823119373280252201183083672896166447786672561808861768782076443312543759437244643146889964363933455672502577964296155349186564340392078021387512970362139779496580009767098175116221996336815276032e+365', '-425417.2', 65);
  622. t('1.915651048048760989675223006710502095760272088541579446290639477213455428121307995153274075329786132157611746651e+72', '363227.051', 13);
  623. t('-7.65032026817518248876564402449082201253180407179105772287243705588834467106246226864795794350056707139677395342984049031608196167e-158', '-0.0000000000008205956327', 13);
  624. t('1.5286700631942576193765185769276826401e+37', '7', 44);
  625. t('1073741824', '8', 10);
  626. t('-7.492788722116264058568890205770570774859100309722464309788118049412229345772411480224300523702767256086276612012745150464681862935165491623598382139203570285583278591609354972796097254467143774807748614976801272704624819215123157317922738427454525033948883547809409740884056108275497786621497433099431568320476275959806764951584862378486525479494452910448127181400467328943711415916384184330110378180608e+38', '-2.6742', 91);
  627. t('-9.9615483925456314514941835282258027490657130453558630944504898425429565393128463181577359582035968e+22', '-34.13672', 15);
  628. t('1.399922200750534682219817715626042346444265577310152832656021878942015248035909712686518235139333930615671437276362060231490721869741275050613538630628001507198150040959125681675660226363983554975062957910826317184614904091530578807538850671607301864207908455029708464592014690257839027200102495492869235566493012545340996194182688131148892605629158333606816661843824439253963260085811270982958376407623291015625e+181', '8668.79595', 46);
  629. t('1.1972515182562019788602740026717047105681e+40', '9', 42);
  630. t('2.809433795080632851709145012225734908409054034941321241601987773815883609706743541544402166343924517939889529050536360240983658675834106822309237371584880050176e+67', '29.26', 46);
  631. t('-1.130764362193076554708917348657069436161383119992010510285626112959278426786936465605907875370782367006311207257151205709430547608789956273155866459033031412425747753017041228269946019068798157376004812291000927158419091251680264057450083682494989856683271885476193403159681085354715517423876371812000883161101039915298940406738346701704184093773206563783365396974283025554248166993067633181013835776e+229', '-495.16', 85);
  632. t('-3.077228040283419501485435148888847716813106712632276671229710377509021026817676725408321326107948661263691709915698886286976007892051135335651197784824163323643144277812710153968406419716183905139635176333083510237302643593683953953477494067043109636077672667948180821005422658784541128359007025402810248257138220199195378601727145592714535208968044372704483391015842523268884989073259915535384596690721656759730286732238685451797332150695395077171985430070293527840123294365665570804795301448909420756992e+418', '-5398620298.48', 43);
  633. t('2591500643510.8703986391408896', '35.620', 8);
  634. t('-3.35390966929685775566428232543003229321430942684482327393890454463616e+26', '-6156.933746', 7);
  635. t('-4911940958770.721866380729238693889243243167048192', '-25.7122', 9);
  636. t('2.09670982511886308779364382461226064522913244291274975553909045464953985730555995547122852179186171376596687978705841751285402054060384366505333092240660435368377833186306191605049e+179', '2093', 54);
  637. t('-1.3120135409024675389197377e-32', '-0.0000000000235855553', 3);
  638. t('3.06580286249339590556181770635869764259023245764469206004664101e-78', '0.0061', 35);
  639. t('-4.429293345196932276984549040219058245905488651609667018402382745119170674779904528756935495114384894434070998056621967747005022674509457845620395626349316891933712941619646377506486625368600115937614507993729672492431012578899815005421568e+37', '-32.051870380', 25);
  640. t('1.299270565684257922619246441017034698039805547412943905460754496572097300952165266370194652051376805296279609746312644347199238836765289306640625e+56', '-18.85', 44);
  641. t('1.566108714385843340192620380546546555641735293434509574033302065853656477829384746549085411912657151882140111651595251043453318950397645765893613409097202898027341727466585518405768283017471302953847629952837298920882176e+24', '41.0192888808596', 15);
  642. t('2.61958676888190130160363553014940478261307337527924200329289138176e+65', '-1866', 20);
  643. t('3.23590932372253866812859949454563891250217856922745576253641197253435665205998361592799809e+89', '2474977', 14);
  644. t('-9.7368504802272205153595678239454304952368475046930119079817985916928e+67', '-12', 63);
  645. t('3.44552147465294110719732986332367243247925798357929806000836849e+62', '-7', 74);
  646. t('128', '2', 7);
  647. t('5.65251025822228531444194278761233641822281792819659230058333528631972497846690920646507426317458140864925211864848848044857090776165664263450974899867329254381660849739991179791628529582217569168185463633540183106805961127540063207424e+251', '-96880334819820', 18);
  648. t('1.214529036103353599078303402353988354368901290518483617131872964733929620706476271152496337890625e+43', '6.5', 53);
  649. t('-1.3089738102615705488950036718911116878301386483323342409513651601949943841095689259436086715966084434967103664037924413474102289403813212913777522181382481044473580351805322191321973e+181', '-78533', 37);
  650. t('1.252453015827223091648143056289e+30', '47', 18);
  651. t('4.593884321465082753417847006029094939767153045428871371185146539475234934788078659649525017869031479813190380591953477672897146298354193774199686172307595609685062957351072442717423824419651156326307969688849329e+172', '34973.7', 38);
  652. t('6.4993779802563991313942147088910855038980304493628711994552936552675080091715543868582664478495863312478503560216160496462563144213423384672637506819444007554298505039521124189159003567749810227911510054190116940785207230365438230686589958633589792785739898681640625e+25', '19.527362557915', 20);
  653. t('22876792454961', '3', 28);
  654. t('429643228077338878294.90980773552148447232', '13385.0992', 5);
  655. t('-7316.89', '-7316.89', 1);
  656. t('5234016485162380478.15409743331356736233224871362317808951664029477472141754368438049197212877764328120319129016485361', '2.41', 49);
  657. t('-9.18448171920669942200338050009727274073573579465100492416464784644248864677562331387086995022599687737054074140424187879986024804042070022603490146718362719056788563440317890910682257768632925460866552260450415793672740716743856864948011399578402033107962721324762764871499139470157293091799845778141752390211181570286270362089589942764421437922022663206638528993662330911966459538905107421403529415706249287725923857606476849002798755812680628308770502507877888997449832630062999974358780733e+247', '-11613.6333', 61);
  658. t('2.648409294963988844015616e-24', '0.0000000138355056', 3);
  659. t('2.40863472207038829716951461596425356200891165327233287498341065017430044564718221477455813374032856667895504085743031089347856425830213625711815509685491800628989456526993157007511653813393067316060298253585492583958097263354394562221211900373157618798878275619835293896301261289133749847496154802330721946407650402052956106639135229248180394944200385403412146150497882700273381421471626181859523581299015700836664867216504968658889499860010034200157321932124862289179191239642591047175122517733014555125735104472403712501002006088016431555682009e+357', '6337.73', 94);
  660. t('-3502571449.82200575261531309080576', '-2.6', 23);
  661. t('1', '1', 25);
  662. t('-1.1809125003067061836785344667120764389443931749265317457525459548456128442105786285468877390219672806038351135283671645849621670658638427296075188535296e+27', '-7.46960', 31);
  663. t('-7804725.584345565904628551916716032', '-1.8', 27);
  664. t('652.68343537143736977925527144667849979675453569710942641839519790994481', '-1.1', 68);
  665. t('1', '-3', 0);
  666. t('4.26825223812027400796974891518773732342988745354489429495479078935112929549619739019072139340757097296812815466676129830954465240517595242384015591919845376e+55', '3.6', 100);
  667. t('1.143346541001259437465016483752642875340200408207372315398374410086504054045958634479945641547514904516533919702060746490155830653988883705469429546657675670673347514271976875109918113055399954802405065425692486675365016543448426931378922954782957026636988416e+190', '-388997.14', 34);
  668. t('1.391479860226959780852496779461260634580951060711489905798047445581119629509685004732118558920853318033429289719854192097911392274604744812177542476869031306237630906988638098552100901480110526866015997536096860367785128698535455722265589251495705036009334110148089566472594008624482378925581538366245059147829461639938451131334656e+162', '785.994', 56);
  669. t('-2.039429275458086101347617297850948854294429450037773018607110681185721614063201210356599410953e+93', '-27753', 21);
  670. t('1.8072708076715752612606017458825273480777271963492548142293548724970849500539908571180569517655791008990836891664536992680448e+43', '64022.984420938', 9);
  671. t('-155568095557812224', '-14', 15);
  672. t('2.18753957001465798602093911444285519704647324430365134831536108015616e+44', '4954.46', 12);
  673. */
  674. BigNumber.config({EXPONENTIAL_AT: 0});
  675. t('2e+0', 2, 1);
  676. t('1.6e+1', 2, 4);
  677. t('6.25e-2', 2, -4);
  678. t('5.0600621890668482322956892808849303e+20', '907.27', 7);
  679. t('-7e+0', '-7', 1);
  680. t('-9.01e+2', '-901', 1);
  681. t('1.016984074247269470395836690098169093010136836967e+39', '21584.7', 9);
  682. t('-8.983272e+1', '-89.83272', 1);
  683. t('5.308416e+6', '-48', 4);
  684. t('3.83432050166120236679168e+23', '52088', 5);
  685. t('-2.679971527468745095582058350756311201706813294321409e+51', '-517889', 9);
  686. t('5.067853299870089529116832768e+2', '3.47508', 5);
  687. t('3.48822062687911109850066182676769e+32', '4129', 9);
  688. t('1e+0', '-429.32321', 0);
  689. t('-4.2773e+0', '-4.2773', 1);
  690. t('-5.8169306081172252508071119604378757744768e+12', '-66.6082', 7);
  691. t('1e+0', '-7.0654', 0);
  692. t('-1.51655708279450944384385164853883404204414169862685507e+46', '-3956084.3', 7);
  693. t('8.1e+1', '-3', 4);
  694. t('1.296e+3', '-6', 4);
  695. t('2.9e+0', '2.9', 1);
  696. t('1.764e+3', '-42', 2);
  697. t('-9.3418332730097368870513138581415704704611459349313e+49', '-356673', 9);
  698. t('1.517108809906561e+15', '79', 8);
  699. t('3.1063e+4', '31063', 1);
  700. t('1e+0', '-21914.49416', 0);
  701. t('1.4586250332983909737249e+10', '49.43', 6);
  702. t('-4.208092749838142546109102616048103440952842087045576022556672e+46', '-4577028.48', 7);
  703. t('3e+0', '3', 1);
  704. t('1.4301918832998497740081358663795354088849575358074712812593899025686055664154241e+71', '784195396.7', 8);
  705. t('1.914994057877243921847839041839022064004621019747303000421532785660701999616e+57', '2315715.86', 9);
  706. t('1.40379741624014849127481344e+26', '804', 9);
  707. t('2.1305364420464979969795870610432e+21', '18437.32', 5);
  708. t('1e+0', '-48', 0);
  709. t('7.018e+3', '7018', 1);
  710. t('-5.8149737003040059690390169e+25', '-729', 9);
  711. t('2.537640625e+9', '50375', 2);
  712. t('1e+0', '-287', 0);
  713. t('-1.879616311308566413901e+11', '-179.81', 5);
  714. t('-3.73314280039567349e+17', '-3269', 5);
  715. t('8.503056e+6', '-54', 4);
  716. t('1.114538684361769559136325232186960408417483078419495901986816e+28', '3205.4344', 8);
  717. t('-4.27504205e+3', '-4275.04205', 1);
  718. t('-4.18195493e+8', '-53', 5);
  719. t('-1.32651e+5', '-51', 3);
  720. t('-4.309348e+6', '-4309348', 1);
  721. t('5.2697770766776504576e+19', '-7259323024', 2);
  722. t('7.334473e+6', '7334473', 1);
  723. t('4.2587208337796928798976e+22', '-674', 8);
  724. t('2.5398714208994744315474847375553672678449979949471296663472852498581058264323e+76', '82219173067', 7);
  725. t('3.8595867893817789e+16', '38595867893817789', 1);
  726. t('1e+0', '6607929.612', 0);
  727. t('2.03571124747179512510686558355453870501244709050625e+34', '-377727882.4895', 4);
  728. t('2.45293306092383728169089251608498030232760591201e+47', '-838901', 8);
  729. t('1e+0', '-3', 0);
  730. t('3.834566459566834602823771544700625e+33', '248845085', 4);
  731. t('9.9603189655699799982630929090395077799549456e+43', '-99900649454', 4);
  732. t('4.96981290961e+11', '-89', 6);
  733. t('1.58714182711801961914035004098749014540213215369889902124332186866896819339082286680313155541911581006508901525889227579394470766224134369e+74', '175595288.8066529', 9);
  734. t('1.326409999413464946341631126231535779147856072448189797080406801e+19', '-60348.91227522707', 4);
  735. t('-2.050107090202653994550415295865311714194868710425929507925126964581376e+69', '-72837546696276', 5);
  736. t('2.0550048143314549586011369057890711537772093948321e+49', '-2129135057417', 4);
  737. t('1e+0', '3943801.89538088', 0);
  738. t('2.17438998607457e+14', '737', 5);
  739. t('-2.273581752472e+10', '-22735817524.72', 1);
  740. t('1.51891070159203e+12', '1518910701592.03', 1);
  741. t('-6.42199562432576e+14', '-86276', 3);
  742. t('1.33010089e+8', '11533', 2);
  743. t('5.1662108991396663099278667856407361e+26', '-4767525.59', 4);
  744. t('-2.197e+3', '-13', 3);
  745. t('5.7261215932713209368576e+22', '489176', 4);
  746. t('2.63105908732834720740862027188940646962896811537209872829318157804817881e+71', '800488505731', 6);
  747. t('-7.8151742291e+2', '-781.51742291', 1);
  748. t('-2.5619022164869008875e+19', '-2947955', 3);
  749. t('1.888497394256858387595532951034741052100428552247961627495355202904723558656e+3', '-6.592180609971056972', 4);
  750. t('1.227102111503512992112190463e+27', '1023', 9);
  751. t('4.762033342402709161761620616017059035607e+39', '86210167', 5);
  752. t('1.0526899962331857933889886363874543386374239042307e+34', '6374705.107', 5);
  753. t('8.3043861038534085480857730707894983974895341475449922046323943309856240866914720437665233e+61','7584431.953', 9);
  754. t('5.4787291089024129877918140548999194405505068584642366052046899220357579072497678119620025119214429570421679076944647727607529032984620150444553526120397e+151', '72419131838243117', 9);
  755. t('6.1203577224967e+13', '61203577224967', 1);
  756. t('-2.6742593337474927167986914400257603e+34', '-82827', 7);
  757. t('3.490938536648870448335810684618787855050175354916141007545163425555957335829e+75', '247548469', 9);
  758. t('6.634204312890625e+15', '-95', 8);
  759. t('-9.171271e+1', '-91.71271', 1);
  760. t('5.65625765123605544067809018296482219675982471958093705254464e+59', '-9093998202', 6);
  761. t('3.518743761e+9', '-39', 6);
  762. t('1e+0', '-5420353171006060062', 0);
  763. t('5.93548365959371477646876280183482286894691258676416e+26', '840398698.65610156', 3);
  764. t('3.05021119744369888239209417566581849921624834657246971302432870103990316674041818082170961e+89', '-820455414011161', 6);
  765. t('3.2696530375744e+11', '571808.8', 2);
  766. t('7.5976962512577721e+4', '-275.639189', 2);
  767. t('1.902906615566371112511312310657143013376e+4', '7.1760176', 5);
  768. t('1.518464318469541965652429354308518011195184133938752135708801e+60', '33317743', 8);
  769. t('2.13200587786233626937431579432326390786198510967574168821917803373975072742648456640669209424089001389646413824e+92', '2444169945946508.968', 6);
  770. t('2.22147484530834915265639755288996e+8', '-14904.612860817114', 2);
  771. t('1.492078384275163354935132877205588401e+36', '-1105217899', 4);
  772. t('-8.7063159741318127407528723363285743789464660953004359884056134456089069164858324456719131936164339926111276712486987242162931090900645752178720048529774274761e+31', '-3538.91793390607241', 9);
  773. t('-2.13718835678657210508559759338095142848187133522908355458407047497607984468725768078407393313580673815584615486794665109272908382172581587476837516398285148210296241056810064518192239263716914808770258390627580625498767684881468120398755080836616073670778327363332334149416019505078840253645081995145611223104498789608205428495349224542916922658293232780298744501314853052243306816366148311919597221018850456061527891844821902500302159789434488225792e+125', '-43837.525307806238', 27);
  774. t('6.6067183217034216835242910438119195789788339709493349261334009277024675568767116522521737472677079426635748603259327817717050761351617610783486587612028204471198915744801916514515768618923473461233676712402753179616115705829361991013069927369820940249862144e+28', '-63581.52864975395137421365938883267810362492', 6);
  775. t('3.4979655423042386318207008930737637967359866053138998526505479068249644854876701482811561341347105355107695596776164641704434681969517211923069874207364828070027467521475982678466251216378786468053405366050900916905682920934733855175647035328921497719019616796867272653837232009633511918699584196136643032274244642212313884180837128156688381283842300678798685499010807063746785776492193558002382725297304258913361e+62', '860658355.93419774133511168973596889241553275604551215135281', 7);
  776. t('2.43e+2', '3', 5);
  777. /*
  778. t('1.1341259418236998571758990926811782086077524757263871423863079766086030645673726799115988350322336274469528121736526520039192242333771040454545272536238688950013853620343757910936524944674880346697808001951639020756685105416346426508389541123017097529060283829118103883424462596062875341251599735321937114348037712815556934333412355272212045907182873831909566029976608100685207198148793211027456e+142', '-77969657.57799062937836', 18);
  779. t('-3.0028686351108853762578194984762919284354267811356443985818417209466959135294437327385632801156377236905276696018118450080884435331856383482308738976558186955588239868161702337334759747439195397392938819582577110829644281561085620841415307488010481547467558616309027516654381610456065415065653113913265920029870297942479155862011879884534002975129045737955826661617772520189976935251896803639204375428428030749e+58', '-3144155.647351179442684823966727126493552586749', 9);
  780. t('1.201753576366394485531985516556867241747342491824062593983537252565487129409802473156809713616241453319630220923725569628522288147931699557284946119375022985149050727430775477724150730989713693887368264655960182781852240604839836052804518341222619522792226084796948765314193322314769946060633722353531243331728258530762514582945950418550784e+31', '27540.61485935537676544614263765574563131573245204', 7);
  781. t('3.37155040678778244943012545203918986928745669295171850695394544390939711301031039954614562269468815944072319615611367890859596537480727045421148118535227427436434942469760108682572253320836320356162649649114580786938367825230347818905248996593031355662611333376e+4', '-3.68110925219710489918033269313682', 8);
  782. t('-1.157385562678413511184308898769846329872668259271078544423253372613586833033423503791374542602879075132311305638124240471079826030985837104460703581522437292662638238646090030670166015625e+186', '-7784665', 27);
  783. t('5.7216584769709576633639728428105243709762039786762015993329350164736e+39', '-8697220540.1137988', 4);
  784. t('3.605080945893673836738483946060969335788919921875e+3', '2.48435', 9);
  785. t('-1.36240450766284865053749603054987406024313651234922549391481734582321604854817272341996695098685037495173906240642212299142117181990034526636150309000822666516664160854969363947955605850108340373472205128364217170231566407701356867606602700453971968987168686696650431666690097496345998516797552915475256643599049488322243247996920458277719083301674288561258518312772229949771006312491204843363917607453589630126953125e+161', '-3009460118.872263767875045', 17);
  786. t('-3.8433712973156659829312033596061261378003902713922379084688365643813353176050190118421109324160544394293788636677094907930777317141076841010276342345029919613746057639577024242309077555840877645790649554834063514938596292845365250946008190566774814236719875110926196028928250892121252859736673222597350006754961294389605594296221696e+157', '-271616.155606', 29);
  787. t('8.880125173267286184293229956929e+30', '-143903', 6);
  788. t('1.2933690030633029978317864458950890700698349292432976269804895466563737201880939364145851524416113479708518067001609042030295271670130750045121e+14', '-7.62048571', 16);
  789. t('4.49118544044091499255717578905704133184433268994940305778505055836352880272044837700029253390614132345790751503571600332872e+26', '765808758.66956931514481639498062905791538', 3);
  790. t('-1.128193052103617375313057818469912250487118062091774976e+29', '-646363.29196', 5);
  791. t('-3.852842458277771128223673975490918109e+4', '-38528.42458277771128223673975490918109', 1);
  792. t('4.47317529320544012507678955001652121720459770030481180787405405093720278140090456738247550862238112656659162732461713512251836889602737214995151906586537236627456e+105', '5932.48', 28);
  793. t('1e+0', '-13.97065588562499', 0);
  794. t('3.600545803275794460618862354918801e+11', '600045.48188248151', 2);
  795. t('2.569380011313067359691205257942517240115628560689496193366261158908199626359277748729466511294505469537479575614097255886064905027804073982599354300474897943e+129', '62080.7', 27);
  796. t('5.818461494039866039726986100228248575472782020261098417686712139322808092966875943575012778303872663798273362332843148103605110550575434794509775866235877112057573531799569068637521409971342270836350080123911710082519119058044202449706075905917444188007277340785315892319100567144025511009943278859996309146349108129588009524947393206783018441414022970002633906397294399684375635228021017590940658971148436650082905540838555648e+102', '6398.880593717242', 27);
  797. t('1.34971356455758975292534311187056647652453780619004003032217331555704261585125261846040712896856946037144900053640398406244356726653396169868958721875222540716653887768486266703330919098362921e+11', '4.1528548909', 18);
  798. t('-1.77396388128500114222945974047586725531284545911409446577e+56', '-913', 19);
  799. t('-1.23493440106890737225414566980096565722401440419412087747352443276574932419181598097379536554237254841727093836607763912665203669933311010821309594074994067411700657618950544400833319706872315553946358432623522564358319794505880365894233180227408889879677018966524371664896e+230', '-90520083747.46', 21);
  800. t('-2.17525001942067723150294558531604730954322658381064353285681098867925681081506083705983156066163186746091443633027643554689317160117967955473175500964155968361524273945120598810972722792061e+14', '-3.121741', 29);
  801. t('1e+0', '-562610.16179592649796590823394093366548', 0);
  802. t('5.5399516545866639955830015026176e+11', '14.94', 10);
  803. t('1.494189395849269188211255039709933309086424259778445906419464942576097148044216376789735318980392750336285644804638743600807550074206128272345650029255016954321611264002141919840462369550905098763723254901675135787504979910497931539962354019230845564318816091666473025536e+126', '-32698949771.110178432792', 12);
  804. t('1.1504940871276742926708823617505372960241390892442547940194260102743306128298973371802547471453755938653944600792141533514422490556963535378521856840746722206160260148176604222079226186281680715577736316488196108040509176925372372483300649927835887344415603493563915019264675154039059770309142781930141352329958156926976e+15', '-8.7358521345995835476', 16);
  805. */
  806. BigNumber.config({DECIMAL_PLACES: 1000});
  807. t('5.5626846462680034577255817933310101605480399511558295763833185422180110870347954896357078975312775514101683493275895275128810854038836502721400309634442970528269449838300058261990253686064590901798039126173562593355209381270166265416453973718012279499214790991212515897719252957621869994522193843748736289511290126272884996414561770466127838448395124802899527144151299810833802858809753719892490239782222290074816037776586657834841586939662825734294051183140794537141608771803070715941051121170285190347786926570042246331102750604036185540464179153763503857127117918822547579033069472418242684328083352174724579376695971173152319349449321466491373527284227385153411689217559966957882267024615e-309', 2, -1024);
  808. BigNumber.config({EXPONENTIAL_AT: 1000});
  809. t('179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216', 2, 1024);
  810. Test.isException(function () {new BigNumber(2).pow(4.4)}, ".pow(4.4)");
  811. Test.isException(function () {new BigNumber(2).pow('5.5')}, ".pow('5.5')");
  812. Test.isException(function () {new BigNumber(2).pow(-2.1)}, ".pow(-2.1)");
  813. Test.isException(function () {new BigNumber(2).pow('-11.5')}, ".pow('-11.5')");
  814. Test.isException(function () {new BigNumber(2).pow(0.99)}, ".pow(0.99)");
  815. Test.isException(function () {new BigNumber(2).pow('-0.044e2')}, ".pow('-0.044e2')");
  816. Test.isException(function () {new BigNumber('12.345').pow(undefined)}, ".pow(undefined)");
  817. Test.isException(function () {new BigNumber('12.345').pow(null)}, ".pow(null)");
  818. Test.isException(function () {new BigNumber('12.345').pow(true)}, ".pow(true)");
  819. Test.isException(function () {new BigNumber('12.345').pow(false)}, ".pow(false)");
  820. Test.isException(function () {new BigNumber('12.345').pow([])}, ".pow([])");
  821. Test.isException(function () {new BigNumber('12.345').pow({})}, ".pow({})");
  822. Test.isException(function () {new BigNumber('12.345').pow('')}, ".pow('')");
  823. Test.isException(function () {new BigNumber('12.345').pow(' ')}, ".pow(' ')");
  824. Test.isException(function () {new BigNumber('12.345').pow('2.66e+1')}, ".pow('2.66e+1')");
  825. Test.isException(function () {new BigNumber('12.345').pow('4e')}, ".pow('4e')");
  826. Test.isException(function () {new BigNumber('12.345').pow('hello')}, ".pow('hello')");
  827. Test.isException(function () {new BigNumber('12.345').pow('\t')}, ".pow('\t')");
  828. Test.isException(function () {new BigNumber('12.345').pow(new Date)}, ".pow(new Date)");
  829. Test.isException(function () {new BigNumber('12.345').pow(new RegExp)}, ".pow(new RegExp)");
  830. Test.isException(function () {new BigNumber('12.345').pow(function (){})}, ".pow(function (){})");
  831. Test.isException(function () {new BigNumber('12.345').pow(7.5)}, ".pow(7.5)");
  832. Test.isException(function () {new BigNumber('12.345').pow('-1.123e1')}, ".pow('-1.123e1')");
  833. Test.isException(function () {new BigNumber('12.345').pow('-0.01')}, ".pow('-0.01')");
  834. Test.isException(function () {new BigNumber('12.345').pow('-1e-1')}, ".pow('-1e-1')");
  835. // As negative exponents involve a division, the result depends on the decimal places and rounding mode specified:
  836. BigNumber.config({DECIMAL_PLACES: 20, ROUNDING_MODE: 0, EXPONENTIAL_AT: 0});
  837. t('-5.196101e-14', '-453.8', -5);
  838. t('1e-20', '8308633', -17);
  839. t('1e-20', '834', -23);
  840. t('1.6666666666666666667e-1', '6', -1);
  841. t('-1e-20', '-71', -29);
  842. t('9.765625e-4', '-2', -10);
  843. t('1e-20', '62.8159321', -18);
  844. t('-6.333754988633e-8', '-2.0557545', -23);
  845. t('1e-20', '33', -24);
  846. t('-1e-20', '-5235.7923', -27);
  847. t('-1.29728108e-12', '-9169', -3);
  848. t('2.323057312542e-8', '3', -16);
  849. t('1e-20', '1523620.62', -20);
  850. t('1e+0', '1', -16);
  851. t('1e-20', '13', -25);
  852. t('1.5241579027587259e-4', '-9', -4);
  853. t('1e-20', '531385.4', -11);
  854. t('8.4322648810503e-7', '-33', -4);
  855. t('1e-20', '480546.8181', -13);
  856. t('-1e-20', '-83591', -9);
  857. t('1e-20', '457.54', -29);
  858. BigNumber.config({DECIMAL_PLACES: 40, ROUNDING_MODE: 1});
  859. t('0e+0', '41', -25);
  860. t('-0e+0', '-26403', -25);
  861. t('-1.83965573171075e-25', '-28.5112', -17);
  862. t('1.3846500590693220280355384e-15', '72', -8);
  863. t('0e+0', '388528.736', -15);
  864. t('3.934117957191277521704056558e-13', '9', -13);
  865. t('0e+0', '523512', -7);
  866. t('0e+0', '65', -30);
  867. t('0e+0', '-43284153', -10);
  868. t('0e+0', '825797.7867', -9);
  869. t('1.45171e-35', '14.49674917', -30);
  870. t('4.11323023e-32', '713.2735', -11);
  871. t('6.75896391888332043299090622098e-11', '-2.8992', -22);
  872. t('0e+0', '9006558087', -9);
  873. t('2.35898248759e-29', '9', -30);
  874. t('4.2316349570524877e-24', '-835', -8);
  875. t('2.306295e-33', '-18', -26);
  876. t('2.735111227791253388712174e-16', '6', -20);
  877. t('2.11e-38', '-5855.32565', -10);
  878. t('0e+0', '-3338', -20);
  879. BigNumber.config({DECIMAL_PLACES: 2, ROUNDING_MODE: 2});
  880. t('1e-2', '95636', -15);
  881. t('1e-2', '802.942', -28);
  882. t('-0e+0', '-31645', -27);
  883. t('1e-2', '-839791.83', -2);
  884. t('1e-2', '-2.8383287', -6);
  885. t('1e-2', '61689855', -2);
  886. t('1e-2', '7.404284', -20);
  887. t('1e-2', '898183.004', -11);
  888. t('1e-2', '-771825.7331', -16);
  889. t('1e-2', '-33080.258', -12);
  890. t('2.6e-1', '1.4064', -4);
  891. t('1e-2', '-21411.3', -8);
  892. t('1e-2', '-444', -8);
  893. t('1e-2', '-456', -26);
  894. t('-0e+0', '-84450.1821', -15);
  895. t('-0e+0', '-393', -15);
  896. t('2e-1', '5', -1);
  897. t('-0e+0', '-7902377.6', -27);
  898. t('1e-2', '4695.5', -19);
  899. t('-0e+0', '-198', -25);
  900. BigNumber.config({DECIMAL_PLACES: 50, ROUNDING_MODE: 3});
  901. t('2.5224883818467056168924068720414334436865e-10', '-62963', -2);
  902. t('0e+0', '231061', -19);
  903. t('-1.33787022089433001581801823890617687241090613775e-2', '-74.74566549', -1);
  904. t('-1e-50', '-64577145', -15);
  905. t('-9.2e-49', '-7293822', -7);
  906. t('0e+0', '6853973492', -16);
  907. t('5.2813339504e-40', '61', -22);
  908. t('0e+0', '-376283', -30);
  909. t('0e+0', '728444.059', -27);
  910. t('-1e-50', '-368631.5722', -23);
  911. t('4.704e-47', '52631521', -6);
  912. t('3.57224508459076360310928212162780064014631915e-6', '6', -7);
  913. t('4.406926288364964664194824943180564261e-14', '469', -5);
  914. t('1.4551915228366851806640625e-11', '-4', -18);
  915. t('2.44140625e-4', '8', -4);
  916. t('0e+0', '32065.3618', -15);
  917. t('3.7252902984619140625e-9', '-4', -14);
  918. t('0e+0', '911', -18);
  919. t('-4e-50', '-226', -21);
  920. t('0e+0', '6584.1', -26);
  921. BigNumber.config({DECIMAL_PLACES: 101, ROUNDING_MODE: 4});
  922. t('2.59086221967070203169073279093835370593438251373865163612424184820637293172653704e-21', '7280902.7', -3);
  923. t('0e+0', '-864898946', -18);
  924. t('-6.92056804675353e-87', '-4243081.8', -13);
  925. t('4.535096358699077993843952445171547362594555572598969066238446195262298595680218449724146e-14', '28041.71', -3);
  926. t('3.935198147655009521015158343912785620124855179789168611080864740903996079598197380173314783859e-8', '-71', -4);
  927. t('0e+0', '-22174.6', -24);
  928. t('-2.99258857055507737893205013175602880569082447633970771174973412126870110482831422782576004e-12', '-44.287279', -7);
  929. t('0e+0', '470977.3', -28);
  930. t('0e+0', '1491202647', -13);
  931. t('7.6416831024439568243705975297501568471970365586580909307933089678e-37', '-63.95', -20);
  932. t('1.265999063160693261086986795629771233969286862727721581486029700338021749863905100710225474433149e-5', '78989', -1);
  933. t('0e+0', '4669863', -27);
  934. t('0e+0', '68895.202', -25);
  935. t('2.739979564368301888555652244200021058884694833454583774293368045917370205983074157e-20', '8174.2993', -5);
  936. t('0e+0', '-84777.31264', -24);
  937. t('-1.61732012052302022569648421623255682672403613813784e-51', '-8072.642', -13);
  938. t('9.226701330968798029567410873712667474511623e-59', '86', -30);
  939. t('-4.52671289980544818356121416933990316474525113390656357838131753149833770190909867e-21', '-805.966', -7);
  940. t('-0e+0', '-62548432.8', -25);
  941. t('1.2208830071779439347812238188621035387222053043582168736013775635140091964690008930489382362e-10', '-90503', -2);
  942. BigNumber.config({DECIMAL_PLACES: 77, ROUNDING_MODE: 5});
  943. t('0e+0', '66772.53301', -27);
  944. t('3.40661780943015419152e-57', '368.73348', -22);
  945. t('5.601099885e-68', '5310955.57', -10);
  946. t('4.7583024e-70', '4452', -19);
  947. t('6.90016290197904917102412334010616805829465226173165163729397834725e-12', '-617', -4);
  948. t('0e+0', '-107429', -28);
  949. t('3.31141522e-69', '2654.601393', -20);
  950. t('0e+0', '29989989', -29);
  951. t('0e+0', '86252993', -26);
  952. t('2.526578217600621656723144619575640216185522e-35', '27.64147', -24);
  953. t('0e+0', '67591', -22);
  954. t('1.045378162048104058782115833482674315266588732330848431111612381555126e-8', '95659163', -1);
  955. t('0e+0', '-442', -30);
  956. t('-1.1560137793600081456221291815651129339464282155352978388454e-19', '-13', -17);
  957. t('5.58677799866283804991416971229e-48', '8664.361199', -12);
  958. t('2.279303152972397504104114985089222523674913654876994600999395e-17', '352695', -3);
  959. t('-0e+0', '-1058', -27);
  960. t('-1.59341022326498995406233262095617818e-42', '-6306.5', -11);
  961. t('7.1812368392200578e-61', '-5741', -16);
  962. t('-4.13699730669298062229277514676940165486322151495730381776e-21', '-71.29', -11);
  963. BigNumber.config({DECIMAL_PLACES: 99, ROUNDING_MODE: 6});
  964. t('3.50565137890907848896561225350273375702045873464e-52', '282', -21);
  965. t('2.5679471225603104166379068675724780241775210532444313569170923793768408333314758e-20', '91', -10);
  966. t('-1.41295214664272077547931481358044650743763505172248724988734056104337e-30', '-57', -17);
  967. t('-1.6987939248665576039846745813760545846750230030808816733060274510838e-32', '-47', -19);
  968. t('2.5752032499330351923455285237362946185406503583972342814435847681120726508860096355483248328e-8', '78.94', -4);
  969. t('0e+0', '171036487', -28);
  970. t('-2.69509379734942915218278341741127616464435811759556667850711208302182540858969514716020661667e-7', '-3710446', -1);
  971. t('0e+0', '186138.741', -19);
  972. t('4.37024265074487259941007405227545667043223030296145105953223847971330338431363825001208e-13', '-5.922', -16);
  973. t('-0e+0', '-68229265', -23);
  974. t('4.928268737732714614617566124770385834839673627880400464580256256e-35', '-522257', -6);
  975. t('-2.022506359274224265530332563554654257153128338531e-51', '-7935', -13);
  976. t('4.113745803364219006888865973815476523221392611155744131624798603545707151167823836246769e-12', '-79', -6);
  977. t('1.58e-97', '7449', -25);
  978. t('1.118728735197209316850322750834837614213911286885421936356799842846357177424981773587541512e-9', '19', -7);
  979. t('2.30221163139014605760922065192648652054327053388946752033272296649e-32', '-433', -12);
  980. t('-2.267272190443616852157926557261723579010324347431719319355102519288715860877837553741191e-12', '-7612', -3);
  981. t('3.9978176310189055673570151190218519691760260637389486960244942965129919180092262453024314407659703e-2', '5.001364539', -2);
  982. t('-7.116521605575577249405567849234479247439447514e-54', '-804088', -9);
  983. t('8.903896183702542287639673e-75', '-294', -30);
  984. t('8.07793566946316088741610050849573099185363389551639556884765625e-28', '8', -30);
  985. t('-0e+0', '-81529053.21', -19);
  986. t('6.5536e-12', '-5', -16);
  987. t('-0e+0', '-393954461', -21);
  988. t('8.6647113997049045695e-80', '-80579504', -10);
  989. t('0e+0', '-148396', -20);
  990. t('-0e+0', '-9359', -27);
  991. /*
  992. t('9.90263871916064254974009912780157486232613002968707056446243636671e-34', '-562.8', -12);
  993. t('4.3492544377486037018080360300067123809538178904353011549513518579352205e-29', '-53325', -6);
  994. t('-2.4321805935844144232493980416059793684e-61', '-323865', -11);
  995. t('7.85857243441531254691813393990245178596730427987853282250959743319065590613e-25', '-52.694', -14);
  996. t('2.0976497180691992906625338620920916459004443120221572748409028790029453e-29', '-62', -16);
  997. t('2.364680619496191078868743412738756777204213983827334426304480201936157926992330323938307469e-8', '-6503', -2);
  998. t('-1.6469853898171534943494115141107888422500959997099727812322359810844298906326507134302e-14', '-34', -9);
  999. t('-2.8509481595561976509829554676872915624841643712635341972335222140599199298237e-23', '-32285.1', -5);
  1000. t('1.146039e-93', '2086', -28);
  1001. t('1.4679476870451975270004793115264473958785611246906228067920825392511892301766856e-20', '21', -15);
  1002. t('-2.7632000420131244245e-80', '-884.33', -27);
  1003. t('1.28e-5', '5', -7);
  1004. t('0e+0', '465056.3', -25);
  1005. t('-3.385374643100272485246768762282984762e-63', '-8732826', -9);
  1006. t('8.1099148118448025737743300061125240950246836242140801097075869941095902018e-26', '-24.771', -18);
  1007. t('0e+0', '41616', -24);
  1008. t('-4.600396873004638534957365480807567e-66', '-693.02361', -23);
  1009. t('4.743101317987169079986565102514233588322445597602857643390328860354941191426667037e-18', '-54', -10);
  1010. t('1.25187781672508763144717075613420130195292939409113670505758637956935403104656985478217325988983475e-1', '7.988', -1);
  1011. t('0e+0', '-28456394.82', -20);
  1012. t('0e+0', '65420941.8', -28);
  1013. t('6.936158419792753387019531369763661408e-63', '8063848', -9);
  1014. t('7.76868869438579094965029841442548135292087504293659500457724060495468797e-28', '8.0104161', -30);
  1015. t('1.418903330951799073514333098017321859067165230705198534199808126932321545716946e-21', '8899161', -3);
  1016. t('5.5856834219770636694175782782449695904056e-59', '-668794', -10);
  1017. t('1.459854014598540145985401459854014598540145985401459854014598540145985401459854014598540145985401e-3', '685', -1);
  1018. t('4.71680980075571e-85', '-186379', -16);
  1019. t('8.28459140195479963018738579860475551841921130300932e-49', '-2719', -14);
  1020. t('2.67077966735439243101042271765185051646201817465563634664049302592659362084276452403367853161e-7', '1935', -2);
  1021. t('0e+0', '3635', -29);
  1022. t('0e+0', '2554338', -24);
  1023. t('2.5540033620655455476185589070642885151916557690202314061872180456116463869710334413505216200293094e-2', '6.257333', -2);
  1024. t('3.90625e-3', '4', -4);
  1025. t('1.950390958369440429127151141521415628594542650755102593292842679774e-33', '282908.755', -6);
  1026. t('7.055018227999164719047034313928978751513528911694565147012740459916e-32', '19.86', -24);
  1027. t('-1.7926074978022214012194558178183164876939431544374262895950448410755196050436473373785e-14', '-92', -7);
  1028. t('4.17170159620302267465579950126198740043495589902397687214801e-40', '422', -15);
  1029. t('9.094947017729282379150390625e-13', '32', -8);
  1030. t('3.840702799092530418345764876794193332866602413557110156e-45', '-597', -16);
  1031. t('2.86244662448576320862533497809376104296326075367736978e-46', '56.45', -26);
  1032. t('-1.9579266376951475915762057927633263263525293205616726853270204e-38', '-32.2350348', -25);
  1033. t('1.25868312332880899610888409696274260282720434321518772464e-43', '52', -25);
  1034. t('0e+0', '262233', -24);
  1035. */
  1036. BigNumber.config({DECIMAL_PLACES: 0, ROUNDING_MODE: 6});
  1037. t('0e+0', '-8645', -30);
  1038. t('0e+0', '7.24173993', -23);
  1039. // With modulus
  1040. BigNumber.config({EXPONENTIAL_AT: 1E9, DECIMAL_PLACES: 17, ROUNDING_MODE: 4});
  1041. t = function (expected, n, exp, mod) {
  1042. Test.areEqual(expected, new BigNumber(n).exponentiatedBy(exp, mod).valueOf());
  1043. };
  1044. t('-0', '-1', -1, '-1');
  1045. t('-1', '-1', -1, '-3');
  1046. t('-1', '-1', -1, '-5.7');
  1047. t('-1', '-1', -1, '-Infinity');
  1048. t('NaN', '-1', -1, '0');
  1049. t('-0', '-1', -1, '1');
  1050. t('-1', '-1', -1, '3');
  1051. t('-1', '-1', -1, '5.7');
  1052. t('-1', '-1', -1, 'Infinity');
  1053. t('NaN', '-1', -1, 'NaN');
  1054. t('-0', '-1', -3, '-1');
  1055. t('-1', '-1', -3, '-3');
  1056. t('-1', '-1', -3, '-5.7');
  1057. t('-1', '-1', -3, '-Infinity');
  1058. t('NaN', '-1', -3, '0');
  1059. t('-0', '-1', -3, '1');
  1060. t('-1', '-1', -3, '3');
  1061. t('-1', '-1', -3, '5.7');
  1062. t('-1', '-1', -3, 'Infinity');
  1063. t('NaN', '-1', -3, 'NaN');
  1064. t('0', '-1', 0, '-1');
  1065. t('1', '-1', 0, '-3');
  1066. t('1', '-1', 0, '-5.7');
  1067. t('1', '-1', 0, '-Infinity');
  1068. t('NaN', '-1', 0, '0');
  1069. t('0', '-1', 0, '1');
  1070. t('1', '-1', 0, '3');
  1071. t('1', '-1', 0, '5.7');
  1072. t('1', '-1', 0, 'Infinity');
  1073. t('NaN', '-1', 0, 'NaN');
  1074. t('-0', '-1', 1, '-1');
  1075. t('-1', '-1', 1, '-3');
  1076. t('-1', '-1', 1, '-5.7');
  1077. t('-1', '-1', 1, '-Infinity');
  1078. t('NaN', '-1', 1, '0');
  1079. t('-0', '-1', 1, '1');
  1080. t('-1', '-1', 1, '3');
  1081. t('-1', '-1', 1, '5.7');
  1082. t('-1', '-1', 1, 'Infinity');
  1083. t('NaN', '-1', 1, 'NaN');
  1084. t('-0', '-1', 3, '-1');
  1085. t('-1', '-1', 3, '-3');
  1086. t('-1', '-1', 3, '-5.7');
  1087. t('-1', '-1', 3, '-Infinity');
  1088. t('NaN', '-1', 3, '0');
  1089. t('-0', '-1', 3, '1');
  1090. t('-1', '-1', 3, '3');
  1091. t('-1', '-1', 3, '5.7');
  1092. t('-1', '-1', 3, 'Infinity');
  1093. t('NaN', '-1', 3, 'NaN');
  1094. t('-0.33333333333333333', '-3', -1, '-1');
  1095. t('-0.33333333333333333', '-3', -1, '-3');
  1096. t('-0.33333333333333333', '-3', -1, '-5.7');
  1097. t('-0.33333333333333333', '-3', -1, '-Infinity');
  1098. t('NaN', '-3', -1, '0');
  1099. t('-0.33333333333333333', '-3', -1, '1');
  1100. t('-0.33333333333333333', '-3', -1, '3');
  1101. t('-0.33333333333333333', '-3', -1, '5.7');
  1102. t('-0.33333333333333333', '-3', -1, 'Infinity');
  1103. t('NaN', '-3', -1, 'NaN');
  1104. t('-0.03703703703703704', '-3', -3, '-1');
  1105. t('-0.03703703703703704', '-3', -3, '-3');
  1106. t('-0.03703703703703704', '-3', -3, '-5.7');
  1107. t('-0.03703703703703704', '-3', -3, '-Infinity');
  1108. t('NaN', '-3', -3, '0');
  1109. t('-0.03703703703703704', '-3', -3, '1');
  1110. t('-0.03703703703703704', '-3', -3, '3');
  1111. t('-0.03703703703703704', '-3', -3, '5.7');
  1112. t('-0.03703703703703704', '-3', -3, 'Infinity');
  1113. t('NaN', '-3', -3, 'NaN');
  1114. t('-0.00411522633744856', '-3', -5, '-1');
  1115. t('-0.00411522633744856', '-3', -5, '-3');
  1116. t('-0.00411522633744856', '-3', -5, '-5.7');
  1117. t('-0.00411522633744856', '-3', -5, '-Infinity');
  1118. t('NaN', '-3', -5, '0');
  1119. t('-0.00411522633744856', '-3', -5, '1');
  1120. t('-0.00411522633744856', '-3', -5, '3');
  1121. t('-0.00411522633744856', '-3', -5, '5.7');
  1122. t('-0.00411522633744856', '-3', -5, 'Infinity');
  1123. t('NaN', '-3', -5, 'NaN');
  1124. t('0', '-3', 0, '-1');
  1125. t('1', '-3', 0, '-3');
  1126. t('1', '-3', 0, '-5.7');
  1127. t('1', '-3', 0, '-Infinity');
  1128. t('NaN', '-3', 0, '0');
  1129. t('0', '-3', 0, '1');
  1130. t('1', '-3', 0, '3');
  1131. t('1', '-3', 0, '5.7');
  1132. t('1', '-3', 0, 'Infinity');
  1133. t('NaN', '-3', 0, 'NaN');
  1134. t('-0', '-3', 1, '-1');
  1135. t('-0', '-3', 1, '-3');
  1136. t('-3', '-3', 1, '-5.7');
  1137. t('-3', '-3', 1, '-Infinity');
  1138. t('NaN', '-3', 1, '0');
  1139. t('-0', '-3', 1, '1');
  1140. t('-0', '-3', 1, '3');
  1141. t('-3', '-3', 1, '5.7');
  1142. t('-3', '-3', 1, 'Infinity');
  1143. t('NaN', '-3', 1, 'NaN');
  1144. t('-0', '-3', 3, '-1');
  1145. t('-0', '-3', 3, '-3');
  1146. t('-4.2', '-3', 3, '-5.7');
  1147. t('-27', '-3', 3, '-Infinity');
  1148. t('NaN', '-3', 3, '0');
  1149. t('-0', '-3', 3, '1');
  1150. t('-0', '-3', 3, '3');
  1151. t('-4.2', '-3', 3, '5.7');
  1152. t('-27', '-3', 3, 'Infinity');
  1153. t('NaN', '-3', 3, 'NaN');
  1154. t('-0', '-3', 5, '-1');
  1155. t('-0', '-3', 5, '-3');
  1156. t('-3.6', '-3', 5, '-5.7');
  1157. t('-243', '-3', 5, '-Infinity');
  1158. t('NaN', '-3', 5, '0');
  1159. t('-0', '-3', 5, '1');
  1160. t('-0', '-3', 5, '3');
  1161. t('-3.6', '-3', 5, '5.7');
  1162. t('-243', '-3', 5, 'Infinity');
  1163. t('NaN', '-3', 5, 'NaN');
  1164. t('-0.17543859649122807', '-5.7', -1, '-1');
  1165. t('-0.17543859649122807', '-5.7', -1, '-3');
  1166. t('-0.17543859649122807', '-5.7', -1, '-5.7');
  1167. t('-0.17543859649122807', '-5.7', -1, '-Infinity');
  1168. t('NaN', '-5.7', -1, '0');
  1169. t('-0.17543859649122807', '-5.7', -1, '1');
  1170. t('-0.17543859649122807', '-5.7', -1, '3');
  1171. t('-0.17543859649122807', '-5.7', -1, '5.7');
  1172. t('-0.17543859649122807', '-5.7', -1, 'Infinity');
  1173. t('NaN', '-5.7', -1, 'NaN');
  1174. t('-0.00539977212961613', '-5.7', -3, '-1');
  1175. t('-0.00539977212961613', '-5.7', -3, '-3');
  1176. t('-0.00539977212961613', '-5.7', -3, '-5.7');
  1177. t('-0.00539977212961613', '-5.7', -3, '-Infinity');
  1178. t('NaN', '-5.7', -3, '0');
  1179. t('-0.00539977212961613', '-5.7', -3, '1');
  1180. t('-0.00539977212961613', '-5.7', -3, '3');
  1181. t('-0.00539977212961613', '-5.7', -3, '5.7');
  1182. t('-0.00539977212961613', '-5.7', -3, 'Infinity');
  1183. t('NaN', '-5.7', -3, 'NaN');
  1184. t('-0.00016619797259514', '-5.7', -5, '-1');
  1185. t('-0.00016619797259514', '-5.7', -5, '-3');
  1186. t('-0.00016619797259514', '-5.7', -5, '-5.7');
  1187. t('-0.00016619797259514', '-5.7', -5, '-Infinity');
  1188. t('NaN', '-5.7', -5, '0');
  1189. t('-0.00016619797259514', '-5.7', -5, '1');
  1190. t('-0.00016619797259514', '-5.7', -5, '3');
  1191. t('-0.00016619797259514', '-5.7', -5, '5.7');
  1192. t('-0.00016619797259514', '-5.7', -5, 'Infinity');
  1193. t('NaN', '-5.7', -5, 'NaN');
  1194. t('0', '-5.7', 0, '-1');
  1195. t('1', '-5.7', 0, '-3');
  1196. t('1', '-5.7', 0, '-5.7');
  1197. t('1', '-5.7', 0, '-Infinity');
  1198. t('NaN', '-5.7', 0, '0');
  1199. t('0', '-5.7', 0, '1');
  1200. t('1', '-5.7', 0, '3');
  1201. t('1', '-5.7', 0, '5.7');
  1202. t('1', '-5.7', 0, 'Infinity');
  1203. t('NaN', '-5.7', 0, 'NaN');
  1204. t('-0.7', '-5.7', 1, '-1');
  1205. t('-2.7', '-5.7', 1, '-3');
  1206. t('-0', '-5.7', 1, '-5.7');
  1207. t('-5.7', '-5.7', 1, '-Infinity');
  1208. t('NaN', '-5.7', 1, '0');
  1209. t('-0.7', '-5.7', 1, '1');
  1210. t('-2.7', '-5.7', 1, '3');
  1211. t('-0', '-5.7', 1, '5.7');
  1212. t('-5.7', '-5.7', 1, 'Infinity');
  1213. t('NaN', '-5.7', 1, 'NaN');
  1214. t('-0.193', '-5.7', 3, '-1');
  1215. t('-2.193', '-5.7', 3, '-3');
  1216. t('-2.793', '-5.7', 3, '-5.7');
  1217. t('-185.193', '-5.7', 3, '-Infinity');
  1218. t('NaN', '-5.7', 3, '0');
  1219. t('-0.193', '-5.7', 3, '1');
  1220. t('-2.193', '-5.7', 3, '3');
  1221. t('-2.793', '-5.7', 3, '5.7');
  1222. t('-185.193', '-5.7', 3, 'Infinity');
  1223. t('NaN', '-5.7', 3, 'NaN');
  1224. t('-0.92057', '-5.7', 5, '-1');
  1225. t('-1.92057', '-5.7', 5, '-3');
  1226. t('-3.42057', '-5.7', 5, '-5.7');
  1227. t('-6016.92057', '-5.7', 5, '-Infinity');
  1228. t('NaN', '-5.7', 5, '0');
  1229. t('-0.92057', '-5.7', 5, '1');
  1230. t('-1.92057', '-5.7', 5, '3');
  1231. t('-3.42057', '-5.7', 5, '5.7');
  1232. t('-6016.92057', '-5.7', 5, 'Infinity');
  1233. t('NaN', '-5.7', 5, 'NaN');
  1234. t('-0', '-Infinity', -1, '-1');
  1235. t('0', '-Infinity', 0, '-1');
  1236. t('1', '-Infinity', 0, '-3');
  1237. t('1', '-Infinity', 0, '-5.7');
  1238. t('1', '-Infinity', 0, '-Infinity');
  1239. t('NaN', '-Infinity', 0, '0');
  1240. t('0', '-Infinity', 0, '1');
  1241. t('1', '-Infinity', 0, '3');
  1242. t('1', '-Infinity', 0, '5.7');
  1243. t('1', '-Infinity', 0, 'Infinity');
  1244. t('NaN', '-Infinity', 0, 'NaN');
  1245. t('NaN', '0', -1, '-1');
  1246. t('NaN', '0', -1, '-3');
  1247. t('NaN', '0', -1, '-5.7');
  1248. t('0', '0', 0, '-1');
  1249. t('1', '0', 0, '-3');
  1250. t('1', '0', 0, '-5.7');
  1251. t('1', '0', 0, '-Infinity');
  1252. t('NaN', '0', 0, '0');
  1253. t('0', '0', 0, '1');
  1254. t('1', '0', 0, '3');
  1255. t('1', '0', 0, '5.7');
  1256. t('1', '0', 0, 'Infinity');
  1257. t('NaN', '0', 0, 'NaN');
  1258. t('0', '0', 1, '-1');
  1259. t('0', '0', 1, '-3');
  1260. t('0', '0', 1, '-5.7');
  1261. t('0', '0', 1, '-Infinity');
  1262. t('NaN', '0', 1, '0');
  1263. t('0', '0', 1, '1');
  1264. t('0', '0', 1, '3');
  1265. t('0', '0', 1, '5.7');
  1266. t('0', '0', 1, 'Infinity');
  1267. t('NaN', '0', 1, 'NaN');
  1268. t('0', '0', 3, '-1');
  1269. t('0', '0', 3, '-3');
  1270. t('0', '0', 3, '-5.7');
  1271. t('0', '0', 3, '-Infinity');
  1272. t('NaN', '0', 3, '0');
  1273. t('0', '0', 3, '1');
  1274. t('0', '0', 3, '3');
  1275. t('0', '0', 3, '5.7');
  1276. t('0', '0', 3, 'Infinity');
  1277. t('NaN', '0', 3, 'NaN');
  1278. t('0', '1', -1, '-1');
  1279. t('1', '1', -1, '-3');
  1280. t('1', '1', -1, '-5.7');
  1281. t('1', '1', -1, '-Infinity');
  1282. t('NaN', '1', -1, '0');
  1283. t('0', '1', -1, '1');
  1284. t('1', '1', -1, '3');
  1285. t('1', '1', -1, '5.7');
  1286. t('1', '1', -1, 'Infinity');
  1287. t('NaN', '1', -1, 'NaN');
  1288. t('0', '1', -3, '-1');
  1289. t('1', '1', -3, '-3');
  1290. t('1', '1', -3, '-5.7');
  1291. t('1', '1', -3, '-Infinity');
  1292. t('NaN', '1', -3, '0');
  1293. t('0', '1', -3, '1');
  1294. t('1', '1', -3, '3');
  1295. t('1', '1', -3, '5.7');
  1296. t('1', '1', -3, 'Infinity');
  1297. t('NaN', '1', -3, 'NaN');
  1298. t('0', '1', 0, '-1');
  1299. t('1', '1', 0, '-3');
  1300. t('1', '1', 0, '-5.7');
  1301. t('1', '1', 0, '-Infinity');
  1302. t('NaN', '1', 0, '0');
  1303. t('0', '1', 0, '1');
  1304. t('1', '1', 0, '3');
  1305. t('1', '1', 0, '5.7');
  1306. t('1', '1', 0, 'Infinity');
  1307. t('NaN', '1', 0, 'NaN');
  1308. t('0', '1', 1, '-1');
  1309. t('1', '1', 1, '-3');
  1310. t('1', '1', 1, '-5.7');
  1311. t('1', '1', 1, '-Infinity');
  1312. t('NaN', '1', 1, '0');
  1313. t('0', '1', 1, '1');
  1314. t('1', '1', 1, '3');
  1315. t('1', '1', 1, '5.7');
  1316. t('1', '1', 1, 'Infinity');
  1317. t('NaN', '1', 1, 'NaN');
  1318. t('0.33333333333333333', '3', -1, '-1');
  1319. t('0.33333333333333333', '3', -1, '-3');
  1320. t('0.33333333333333333', '3', -1, '-5.7');
  1321. t('0.33333333333333333', '3', -1, '-Infinity');
  1322. t('NaN', '3', -1, '0');
  1323. t('0.33333333333333333', '3', -1, '1');
  1324. t('0.33333333333333333', '3', -1, '3');
  1325. t('0.33333333333333333', '3', -1, '5.7');
  1326. t('0.33333333333333333', '3', -1, 'Infinity');
  1327. t('NaN', '3', -1, 'NaN');
  1328. t('0.03703703703703704', '3', -3, '-1');
  1329. t('0.03703703703703704', '3', -3, '-3');
  1330. t('0.03703703703703704', '3', -3, '-5.7');
  1331. t('0.03703703703703704', '3', -3, '-Infinity');
  1332. t('NaN', '3', -3, '0');
  1333. t('0.03703703703703704', '3', -3, '1');
  1334. t('0.03703703703703704', '3', -3, '3');
  1335. t('0.03703703703703704', '3', -3, '5.7');
  1336. t('0.03703703703703704', '3', -3, 'Infinity');
  1337. t('NaN', '3', -3, 'NaN');
  1338. t('0.00411522633744856', '3', -5, '-1');
  1339. t('0.00411522633744856', '3', -5, '-3');
  1340. t('0.00411522633744856', '3', -5, '-5.7');
  1341. t('0.00411522633744856', '3', -5, '-Infinity');
  1342. t('NaN', '3', -5, '0');
  1343. t('0.00411522633744856', '3', -5, '1');
  1344. t('0.00411522633744856', '3', -5, '3');
  1345. t('0.00411522633744856', '3', -5, '5.7');
  1346. t('0.00411522633744856', '3', -5, 'Infinity');
  1347. t('NaN', '3', -5, 'NaN');
  1348. t('0', '3', 0, '-1');
  1349. t('1', '3', 0, '-3');
  1350. t('1', '3', 0, '-5.7');
  1351. t('1', '3', 0, '-Infinity');
  1352. t('NaN', '3', 0, '0');
  1353. t('0', '3', 0, '1');
  1354. t('1', '3', 0, '3');
  1355. t('1', '3', 0, '5.7');
  1356. t('1', '3', 0, 'Infinity');
  1357. t('NaN', '3', 0, 'NaN');
  1358. t('0', '3', 1, '-1');
  1359. t('0', '3', 1, '-3');
  1360. t('3', '3', 1, '-5.7');
  1361. t('3', '3', 1, '-Infinity');
  1362. t('NaN', '3', 1, '0');
  1363. t('0', '3', 1, '1');
  1364. t('0', '3', 1, '3');
  1365. t('3', '3', 1, '5.7');
  1366. t('3', '3', 1, 'Infinity');
  1367. t('NaN', '3', 1, 'NaN');
  1368. t('0', '3', 3, '-1');
  1369. t('0', '3', 3, '-3');
  1370. t('4.2', '3', 3, '-5.7');
  1371. t('27', '3', 3, '-Infinity');
  1372. t('NaN', '3', 3, '0');
  1373. t('0', '3', 3, '1');
  1374. t('0', '3', 3, '3');
  1375. t('4.2', '3', 3, '5.7');
  1376. t('27', '3', 3, 'Infinity');
  1377. t('NaN', '3', 3, 'NaN');
  1378. t('0.17543859649122807', '5.7', -1, '-1');
  1379. t('0.17543859649122807', '5.7', -1, '-3');
  1380. t('0.17543859649122807', '5.7', -1, '-5.7');
  1381. t('0.17543859649122807', '5.7', -1, '-Infinity');
  1382. t('NaN', '5.7', -1, '0');
  1383. t('0.17543859649122807', '5.7', -1, '1');
  1384. t('0.17543859649122807', '5.7', -1, '3');
  1385. t('0.17543859649122807', '5.7', -1, '5.7');
  1386. t('0.17543859649122807', '5.7', -1, 'Infinity');
  1387. t('NaN', '5.7', -1, 'NaN');
  1388. t('0.00539977212961613', '5.7', -3, '-1');
  1389. t('0.00539977212961613', '5.7', -3, '-3');
  1390. t('0.00539977212961613', '5.7', -3, '-5.7');
  1391. t('0.00539977212961613', '5.7', -3, '-Infinity');
  1392. t('NaN', '5.7', -3, '0');
  1393. t('0.00539977212961613', '5.7', -3, '1');
  1394. t('0.00539977212961613', '5.7', -3, '3');
  1395. t('0.00539977212961613', '5.7', -3, '5.7');
  1396. t('0.00539977212961613', '5.7', -3, 'Infinity');
  1397. t('NaN', '5.7', -3, 'NaN');
  1398. t('0', '5.7', 0, '-1');
  1399. t('1', '5.7', 0, '-3');
  1400. t('1', '5.7', 0, '-5.7');
  1401. t('1', '5.7', 0, '-Infinity');
  1402. t('NaN', '5.7', 0, '0');
  1403. t('0', '5.7', 0, '1');
  1404. t('1', '5.7', 0, '3');
  1405. t('1', '5.7', 0, '5.7');
  1406. t('1', '5.7', 0, 'Infinity');
  1407. t('NaN', '5.7', 0, 'NaN');
  1408. t('0.7', '5.7', 1, '-1');
  1409. t('2.7', '5.7', 1, '-3');
  1410. t('0', '5.7', 1, '-5.7');
  1411. t('5.7', '5.7', 1, '-Infinity');
  1412. t('NaN', '5.7', 1, '0');
  1413. t('0.7', '5.7', 1, '1');
  1414. t('2.7', '5.7', 1, '3');
  1415. t('0', '5.7', 1, '5.7');
  1416. t('5.7', '5.7', 1, 'Infinity');
  1417. t('NaN', '5.7', 1, 'NaN');
  1418. t('0.193', '5.7', 3, '-1');
  1419. t('2.193', '5.7', 3, '-3');
  1420. t('2.793', '5.7', 3, '-5.7');
  1421. t('185.193', '5.7', 3, '-Infinity');
  1422. t('NaN', '5.7', 3, '0');
  1423. t('0.193', '5.7', 3, '1');
  1424. t('2.193', '5.7', 3, '3');
  1425. t('2.793', '5.7', 3, '5.7');
  1426. t('185.193', '5.7', 3, 'Infinity');
  1427. t('NaN', '5.7', 3, 'NaN');
  1428. t('0', 'Infinity', -1, '-1');
  1429. t('0', 'Infinity', -1, '-3');
  1430. t('0', 'Infinity', -1, '-5.7');
  1431. t('0', 'Infinity', -1, '-Infinity');
  1432. t('NaN', 'Infinity', -1, '0');
  1433. t('0', 'Infinity', -1, '1');
  1434. t('0', 'Infinity', -1, '3');
  1435. t('0', 'Infinity', -1, '5.7');
  1436. t('0', 'Infinity', -1, 'Infinity');
  1437. t('NaN', 'Infinity', -1, 'NaN');
  1438. t('0', 'Infinity', 0, '-1');
  1439. t('1', 'Infinity', 0, '-3');
  1440. t('1', 'Infinity', 0, '-5.7');
  1441. t('1', 'Infinity', 0, '-Infinity');
  1442. t('NaN', 'Infinity', 0, '0');
  1443. t('0', 'Infinity', 0, '1');
  1444. t('1', 'Infinity', 0, '3');
  1445. t('1', 'Infinity', 0, '5.7');
  1446. t('1', 'Infinity', 0, 'Infinity');
  1447. t('NaN', 'Infinity', 0, 'NaN');
  1448. t('NaN', 'Infinity', 1, '-1');
  1449. t('0', 'NaN', 0, '-1');
  1450. t('1', 'NaN', 0, '-3');
  1451. t('1', 'NaN', 0, '-5.7');
  1452. t('1', 'NaN', 0, '-Infinity');
  1453. t('NaN', 'NaN', 0, '0');
  1454. t('0', 'NaN', 0, '1');
  1455. t('1', 'NaN', 0, '3');
  1456. t('1', 'NaN', 0, '5.7');
  1457. t('1', 'NaN', 0, 'Infinity');
  1458. t('1', '8431', 398674124, '6');
  1459. t('7110', '1929384198', 564, '12627');
  1460. t('1', '421', 969026510, '50');
  1461. t('18279', '503236662', 7865967220250664, '146017');
  1462. t('212243931', '26283', 559977785516, '438161990');
  1463. t('3986011', '309905614', 303248194641, '6707349');
  1464. t('18', '255', 235075187670817, '33');
  1465. t('757606', '85279549', 1, '4971879');
  1466. t('493022001', '1221', 339684, '1227120430');
  1467. t('4928', '308', 862705533, '245399');
  1468. t('1', '2655619', 712076, '33');
  1469. t('3249', '36597', 10, '4814');
  1470. t('24693574779382', '64756899620069', 929, '31837505671417');
  1471. t('4', '16138', 25, '6');
  1472. t('803688476775598957', '23434498424', 1004504153400006, '1552170429770308303');
  1473. t('2372169341110', '626', 2909120945494472, '2627700430731');
  1474. t('763331421', '8920455', 5401, '887776639');
  1475. t('43484276', '95602644', 47268, '79441540');
  1476. t('5184', '552490380863549826', 771646862212, '48411');
  1477. t('249062220104231038', '8165474757220190', 48336800, '275469974740761006');
  1478. t('4533624538711', '71095', 84895497, '8511056291816');
  1479. t('179616962799673689600', '30', 5993842570087, '3846357299605272267200');
  1480. t('2635639014', '948664855786186969995462', 991073259299, '6492710818');
  1481. t('25207202', '7062946640447932397849934745', 9179924349024, '131689081');
  1482. t('46215552578796', '9226321147260318', 465662072, '82890635248305');
  1483. t('2381', '67677914606828678309445778836', 379808346, '6545');
  1484. t('3194', '9430054', 33266765435198, '8086');
  1485. t('489391901079659061061615631695', '61', 532791104437751, '575349759754184186263817284386');
  1486. t('53895639062204578043630854379', '7625677354305052466464542', 384495887925, '92309679232802956732606796453');
  1487. t('2556', '2556', 474, '4260');
  1488. t('7454833596345226', '6627640799561604435379549901208146893914', 738172551780, '9927201293379475');
  1489. t('180534305804480057935271006266', '30118923384576', 1724057305, '217106906249791126796683884757');
  1490. t('40198606849673093876708023432368286', '46018377546879392378', 9583035, '97268554010071292786749920599930246');
  1491. t('119594913310192', '3876146908085398', 6310557700917, '460635614054751');
  1492. t('124164038822218003447569', '6324437543304', 5145398258501, '185457603447664741003595');
  1493. t('3090727470454298372533496615424', '9043956512017564199358', 812419, '24686499729814129954773423938808');
  1494. t('196432807299128', '85644819061206872677771002', 2149475, '2390467883263880');
  1495. t('21038128225272112935718937889', '10201699689699', 975439792, '552736938894180564012881397228');
  1496. t('48815091877022922', '819772006700', 27, '92801123950463822');
  1497. t('3428327713', '4783442049811351657', 763298409739419, '4611091548');
  1498. t('13332959', '50223861853248559483171199', 433657796167153, '14302445');
  1499. t('1671780604656974600625', '5262390185', 237568007998, '2996619244329632717320');
  1500. t('163214427140868907633628729899294561', '69729', 5547, '348074057682137097650725573316845631');
  1501. t('1431482931095017928787410350478464311370783', '324036022719', 741179, '1926651417082887424580613612432908230284256');
  1502. t('2066482089348451048557491058810559698377957', '485499449712405070079531', 26619244686, '5198031511981114390451723050087908159382379');
  1503. t('230132104292091', '51108', 72, '300839508488483');
  1504. t('77425469643841456', '683612', 1358712956, '87679547089722516');
  1505. t('19704951483426394285654701761857', '648220087103027691231', 951, '51871772124455644390524635948707');
  1506. t('49664718770671', '90754235859251032779427547330178026902879259879149', 56465, '88662672119247');
  1507. t('5850177638872804389781733677', '43833993637925773026276875024526870636161009', 18680, '7143233335762749555439764903');
  1508. /*
  1509. t('148766490582493984', '637303893625341624581231866', 80158754948186, '277200469688808288');
  1510. t('461156083195', '7410440324698529628156609999534999680075097798739066525', 5, '497057036562');
  1511. t('64916883599108541736776193', '612994182961138850333413794352070459841441623351', 60767786944, '98752274335195294154105792');
  1512. t('10540459703800', '64273975302329668592061012520727877789083279767399625069872', 47928, '11135116378808');
  1513. t('51323389055913840647', '8812207212196306768767581580252769675186591389274669815', 318348861090, '64421250202609658903');
  1514. t('29757808741764208562941153498135845503485664433483002816', '867758291086087441092815266', 87972360, '35296135515471412857388210439806001268345767694668654815');
  1515. t('12216915747251127577023017426296915245567146', '5', 630681763, '99691500608302115525875055527858805680711469');
  1516. t('39256229035626291077932595741439945459', '884788691267481486036549962208626653751575112606547', 395, '74611250766351101157218135270578882456');
  1517. t('1566585758309290833383165985121', '5518513093291031', 84076954280784, '3268027301397216624639210698650');
  1518. t('23244239019466456', '726961684629206', 44302850171068, '25825428077885724');
  1519. t('576202045348', '2', 86, '1993487574093');
  1520. t('214887739391325311421203390352640473539330809857', '530920695787544208524163946341577905732500119397445776874457', 92074232456, '298234073905137329443605619833742500919938582584');
  1521. t('65987551079170180991', '15727645504455027240711713610867307628685087714766285006179', 5415994008046072, '98093654946405312851');
  1522. t('235755348', '97895915562280371546579179382663613522080', 6864027244330, '2914481959');
  1523. t('25', '2385833031024324749500218699098192497329791351618465248', 76, '43');
  1524. t('60978709428230482055794', '633426981727026457056243235', 2573352678, '68892104926357370406321');
  1525. t('2205305143872260015', '68666113504059034715448345087743557663421209680169', 966912, '91335033334933977914');
  1526. t('1773010325526997630667956162969199', '50236266447725', 1011051, '1815196566132403387261756476229021');
  1527. t('21651713309307397647418967909940906495359918883652297119748967664610', '2116690032950796724931519528504418', 56377918425202, '72530284342935017506382060155224822052591722104751066167988598475621');
  1528. t('424342025184319173350839545801827251126937962398522383162485691860', '7887123908856684587220682858582136758248493694412325668235690671821222', 78263291426, '606621751096553135780007544328033731512868463777097140904367236076');
  1529. t('263494656066740331512505119529952169855176897305760218583136', '66196629771558316669009697587278986920237144718211014622', 82975788577, '276995756096460875347969999989044425131478330494164864612372');
  1530. t('3233881936397621380726', '54662037196287984527444181218823835370969115893018818932457726246761952463863247', 7978980, '8616858825085971720675');
  1531. t('638258565634367399562728805308653408227469872980835260151', '271260887707883899257906058181413820', 83084825904971, '911022277353533247041821679426958551977223586921062184599');
  1532. t('4929004454697476334020070969568981614084143361021890853851227932576', '52595660817705323426336739112374', 82, '84588413633625400636331211734490327208866927410873351741019781325200');
  1533. t('1318', '52222440815620913414283909971331735692219726452073974', 31969869852707, '1743');
  1534. t('14198375573817127297631', '8216191940103223703953921417098533793768836648251711587683532494485283139', 1148021101052, '33840057260506501760990');
  1535. t('21060027143743696716588231173430226739686253140085459901957546396844213341461', '929861823123874973319343426480313452550331811680088489136411', 2724613045067, '41704674452090069450347101739468855285700640202119997571378502239544273783510');
  1536. t('4443992', '15541126534638718868684758085506345122523183909428377824025206962', 260040175408, '25089386');
  1537. t('69108491603450670146194732329929457413687007477897110583837256484', '403009613248326350380989310363291291192333753504', 62476, '79005045873240215031140013298308923107449817612581444589282697702');
  1538. t('17236718288049536002844483635703049705951027651789224052123191026028473', '2094473204798008783226910505910335184920132719939788443730442642435545859265', 45508995, '82091072999723696400188424215432751998089672273801746338001474566467528');
  1539. t('789232110429757050346575421789740938023359099985821439285059579046301609631489', '81969532915716492451825251138141557551221798800067', 9374132001566, '6151970522916703120074639237189829128382929132326931047111863128679908831947160');
  1540. t('309967512158129367241503417', '5036401011755282976501651891', 8, '579409771218647975769237062');
  1541. t('1005177723064444533676930215329318398408005233744147409253092051884720439872045691', '34143228467709965637133329397909447638094686489341571291939014959027173', 5908294874, '1948118218782552504717113674377900788819505447144982442644571967109889114978555094');
  1542. t('2674983886895543103385933707806021292069592798960403352624723368307164005844515', '630121260445826051', 543924007975, '5393527392056050378946327047321386307679397116474720103645794120383930696591597');
  1543. t('34282424398363091595264858358407576878748130711657', '2465523511004443813182991155444943123114440980033643073427530034623', 40040, '53406881113973714252481843982237377938283267787704');
  1544. t('56697362235159637435394616', '13578442879343644788292568854324', 3213346, '64112922323162194609121303');
  1545. t('1719024107812073742324652892209591438916478681803041822032', '741729184', 15707757516391, '2841684181135919788850393385226690862963456286187597289743');
  1546. t('77235876127631492414224275788312346586010414227977024436242959514761441403681', '9779956774206680777933282330040609', 848907522, '80469529418181750667389985753151188249008367167903257882428958848063106959425');
  1547. t('818237407', '8647307267571638478062009936214941341887730783', 72115, '868503288');
  1548. t('16656646685269365251966621943766388357818276618200', '90718594921015553491234286035964355061165665', 413647015, '3608930136060789794621435623631749086641253604872025');
  1549. t('4200771934599417598043614250678407408742790405352069', '13887167479352054887893441108734976256983355293630326688937701987456059128531183047285855439', 4878021, '5174782460386365636916415446777806773439498506957659');
  1550. t('229321232335228179325607264299805007162580253510', '88842733861662854338989696299185544317548185717287774', 1884553431751485, '511271768851992491206847877157605201694070726149');
  1551. t('2782154434549194158424475393312481728934235', '548551139346831388798410342333799565824514031', 21440165013, '28690744453818561525474569067146373783311411');
  1552. t('231885589525566300', '41452536764738341533654876175985845652783844060455944861412', 504, '882872312288902804');
  1553. t('3526070056991550931813749027', '67955640858421297373955388629490294119793212927955296181464396292269', 56248954153, '30688081810027133462513567962');
  1554. t('131014', '2089950142999411392048663', 51275898, '658471');
  1555. t('1563352013492150412336688693007169330972429493240982436018814920117063643496545477705204209349110', '9397910631929603594996958575220998774', 84406064, '4909019378673255436084701488614137765928330710577696608363266704298169838609295204783331338958374');
  1556. t('1044297548212903', '42525084216745706252327916418', 42291, '6457910534907511');
  1557. t('405167196487546464980337225371932484221676531564558020674296714011859111057380', '3400756652952034869667491286822430771347620199472', 26886850142633, '611549802518085362254974981183236948088206027646591513228667566697306287449399');
  1558. t('7794452159255315351790298031593675', '3374396899581350491330711739601350455629429581990670970624900984868802087092615683985175', 4600499328250313, '9412479648183932289355382618210050');
  1559. */
  1560. t('36126', '6', '30313', '46770');
  1561. t('305633', '9', '492182', '595684');
  1562. t('1', '7641905', '7360346', '96');
  1563. t('0', '8102411', '30688840', '1');
  1564. t('0', '693992935', '451540849', '5');
  1565. t('6218780', '688520122', '2871742644', '8796707');
  1566. t('188', '6117', '12332568054', '197');
  1567. t('169', '48919674343', '683481923100', '686');
  1568. t('127963776', '246056', '9993177131270', '171031870');
  1569. t('44758997442869', '717', '49018334050029', '69390201825586');
  1570. t('185434090027004', '3204165044382', '177830725390829', '533879968467436');
  1571. t('1636361', '446', '1191585862541952', '2033593');
  1572. t('32876147411634979', '473417559', '41651896882701980', '98041110944345173');
  1573. t('36047604560818', '773294275250609', '386465744598168787', '50006210156471');
  1574. t('361137861593703', '13244255729639', '1911484136131299703', '662563068256582');
  1575. t('1', '609739021177711600', '72297886219104209891', '3');
  1576. t('70003587481041693', '6116577', '387527631298650918625', '73188864807228334');
  1577. t('59', '414707', '1311336295171970832319', '3834');
  1578. t('557222551695', '289971034958008', '72855336044532499166157', '1126587401089');
  1579. t('689', '4573992158612', '356143103736280634562673', '5429');
  1580. t('25407', '54249087', '6195599464066834683297493', '73920');
  1581. t('3785887454173764209502', '92006966552', '61565817333575715274034140', '61314028114281538772486');
  1582. t('1541435034857375759494843', '946399', '133610173441656552818672857', '4868620034450140054489972');
  1583. t('5398747450367028', '5115300314063699339178', '5632357854798566697113473917', '8379593179369140');
  1584. t('180370444832', '8', '79273223664738060453489483507', '1128783929036');
  1585. t('36241', '369', '474014470821066710327438847753', '75664');
  1586. t('3161951032076426124544', '6762109940816531', '1534263043482451766473278741858', '7423962065376631352231');
  1587. t('1281292887696886550187936197335', '30927801517', '51296625206724082475117595408996', '1829766164960161123900191315839');
  1588. t('515074912159', '34856033499', '680211532871487005592894533276371', '757248324190');
  1589. t('436358152', '946396882132401577278', '8836696379185696318009986585645395', '623395130');
  1590. t('16', '3310500965274958912524667', '47962935101128815165904036733909432', '17');
  1591. t('647888585530921', '5', '471891861800978235667401173790419366', '4641236461015776');
  1592. t('75472044635436', '6129966936', '5455884185341473747842521165846264735', '275718907361897');
  1593. t('3924733361393363824856369763847579', '42369471418756230809882131977', '42666120255589889046256535534890232647', '7932396854039017236651172522627067');
  1594. t('500297504643', '20', '508356366570258756297402522141566883041', '6483672361141');
  1595. t('8893902', '68759083071554', '7658087159877665775510099905346777315313', '18114658');
  1596. // % 0
  1597. // 0
  1598. t('NaN', 0, +0, 0);
  1599. t('NaN', 0, -0, 0);
  1600. t('NaN', 0, 1, 0);
  1601. t('NaN', 0, 2, 0);
  1602. t('NaN', 0, -1, 0);
  1603. t('NaN', 0, -2, 0);
  1604. t('NaN', 0, NaN, 0);
  1605. t('NaN', 0, Infinity, 0);
  1606. t('NaN', 0, -Infinity, 0);
  1607. //-0
  1608. t('NaN', -0, +0, 0);
  1609. t('NaN', -0, -0, 0);
  1610. t('NaN', -0, 1, 0);
  1611. t('NaN', -0, 2, 0);
  1612. t('NaN', -0, -1, 0);
  1613. t('NaN', -0, -2, 0);
  1614. t('NaN', -0, NaN, 0);
  1615. t('NaN', -0, Infinity, 0);
  1616. t('NaN', -0, -Infinity, 0);
  1617. // 1
  1618. t('NaN', 1, +0, 0);
  1619. t('NaN', 1, -0, 0);
  1620. t('NaN', 1, 1, 0);
  1621. t('NaN', 1, 2, 0);
  1622. t('NaN', 1, -1, 0);
  1623. t('NaN', 1, -2, 0);
  1624. t('NaN', 1, NaN, 0);
  1625. t('NaN', 1, Infinity, 0);
  1626. t('NaN', 1, -Infinity, 0);
  1627. // 2
  1628. t('NaN', 2, +0, 0);
  1629. t('NaN', 2, -0, 0);
  1630. t('NaN', 2, 1, 0);
  1631. t('NaN', 2, 2, 0);
  1632. t('NaN', 2, -1, 0);
  1633. t('NaN', 2, -2, 0);
  1634. t('NaN', 2, NaN, 0);
  1635. t('NaN', 2, Infinity, 0);
  1636. t('NaN', 2, -Infinity, 0);
  1637. // -1
  1638. t('NaN', -1, +0, 0);
  1639. t('NaN', -1, -0, 0);
  1640. t('NaN', -1, 1, 0);
  1641. t('NaN', -1, 2, 0);
  1642. t('NaN', -1, -1, 0);
  1643. t('NaN', -1, -2, 0);
  1644. t('NaN', -1, NaN, 0);
  1645. t('NaN', -1, Infinity, 0);
  1646. t('NaN', -1, -Infinity, 0);
  1647. // -2
  1648. t('NaN', -2, +0, 0);
  1649. t('NaN', -2, -0, 0);
  1650. t('NaN', -2, 1, 0);
  1651. t('NaN', -2, 2, 0);
  1652. t('NaN', -2, -1, 0);
  1653. t('NaN', -2, -2, 0);
  1654. t('NaN', -2, NaN, 0);
  1655. t('NaN', -2, Infinity, 0);
  1656. t('NaN', -2, -Infinity, 0);
  1657. // NaN
  1658. t('NaN', NaN, +0, 0);
  1659. t('NaN', NaN, -0, 0);
  1660. t('NaN', NaN, 1, 0);
  1661. t('NaN', NaN, 2, 0);
  1662. t('NaN', NaN, -1, 0);
  1663. t('NaN', NaN, -2, 0);
  1664. t('NaN', NaN, NaN, 0);
  1665. t('NaN', NaN, Infinity, 0);
  1666. t('NaN', NaN, -Infinity, 0);
  1667. // Infinity
  1668. t('NaN', Infinity, +0, 0);
  1669. t('NaN', Infinity, -0, 0);
  1670. t('NaN', Infinity, 1, 0);
  1671. t('NaN', Infinity, 2, 0);
  1672. t('NaN', Infinity, -1, 0);
  1673. t('NaN', Infinity, -2, 0);
  1674. t('NaN', Infinity, NaN, 0);
  1675. t('NaN', Infinity, Infinity, 0);
  1676. t('NaN', Infinity, -Infinity, 0);
  1677. // -Infinity
  1678. t('NaN', -Infinity, +0, 0);
  1679. t('NaN', -Infinity, -0, 0);
  1680. t('NaN', -Infinity, 1, 0);
  1681. t('NaN', -Infinity, 2, 0);
  1682. t('NaN', -Infinity, -1, 0);
  1683. t('NaN', -Infinity, -2, 0);
  1684. t('NaN', -Infinity, NaN, 0);
  1685. t('NaN', -Infinity, Infinity, 0);
  1686. t('NaN', -Infinity, -Infinity, 0);
  1687. // % -0
  1688. // 0
  1689. t('NaN', 0, +0, -0);
  1690. t('NaN', 0, -0, -0);
  1691. t('NaN', 0, 1, -0);
  1692. t('NaN', 0, 2, -0);
  1693. t('NaN', 0, -1, -0);
  1694. t('NaN', 0, -2, -0);
  1695. t('NaN', 0, NaN, -0);
  1696. t('NaN', 0, Infinity, -0);
  1697. t('NaN', 0, -Infinity, -0);
  1698. //-0
  1699. t('NaN', -0, +0, -0);
  1700. t('NaN', -0, -0, -0);
  1701. t('NaN', -0, 1, -0);
  1702. t('NaN', -0, 2, -0);
  1703. t('NaN', -0, -1, -0);
  1704. t('NaN', -0, -2, -0);
  1705. t('NaN', -0, NaN, -0);
  1706. t('NaN', -0, Infinity, -0);
  1707. t('NaN', -0, -Infinity, -0);
  1708. // 1
  1709. t('NaN', 1, +0, -0);
  1710. t('NaN', 1, -0, -0);
  1711. t('NaN', 1, 1, -0);
  1712. t('NaN', 1, 2, -0);
  1713. t('NaN', 1, -1, -0);
  1714. t('NaN', 1, -2, -0);
  1715. t('NaN', 1, NaN, -0);
  1716. t('NaN', 1, Infinity, -0);
  1717. t('NaN', 1, -Infinity, -0);
  1718. // 2
  1719. t('NaN', 2, +0, -0);
  1720. t('NaN', 2, -0, -0);
  1721. t('NaN', 2, 1, -0);
  1722. t('NaN', 2, 2, -0);
  1723. t('NaN', 2, -1, -0);
  1724. t('NaN', 2, -2, -0);
  1725. t('NaN', 2, NaN, -0);
  1726. t('NaN', 2, Infinity, -0);
  1727. t('NaN', 2, -Infinity, -0);
  1728. // -1
  1729. t('NaN', -1, +0, -0);
  1730. t('NaN', -1, -0, -0);
  1731. t('NaN', -1, 1, -0);
  1732. t('NaN', -1, 2, -0);
  1733. t('NaN', -1, -1, -0);
  1734. t('NaN', -1, -2, -0);
  1735. t('NaN', -1, NaN, -0);
  1736. t('NaN', -1, Infinity, -0);
  1737. t('NaN', -1, -Infinity, -0);
  1738. // -2
  1739. t('NaN', -2, +0, -0);
  1740. t('NaN', -2, -0, -0);
  1741. t('NaN', -2, 1, -0);
  1742. t('NaN', -2, 2, -0);
  1743. t('NaN', -2, -1, -0);
  1744. t('NaN', -2, -2, -0);
  1745. t('NaN', -2, NaN, -0);
  1746. t('NaN', -2, Infinity, -0);
  1747. t('NaN', -2, -Infinity, -0);
  1748. // NaN
  1749. t('NaN', NaN, +0, -0);
  1750. t('NaN', NaN, -0, -0);
  1751. t('NaN', NaN, 1, -0);
  1752. t('NaN', NaN, 2, -0);
  1753. t('NaN', NaN, -1, -0);
  1754. t('NaN', NaN, -2, -0);
  1755. t('NaN', NaN, NaN, -0);
  1756. t('NaN', NaN, Infinity, -0);
  1757. t('NaN', NaN, -Infinity, -0);
  1758. // Infinity
  1759. t('NaN', Infinity, +0, -0);
  1760. t('NaN', Infinity, -0, -0);
  1761. t('NaN', Infinity, 1, -0);
  1762. t('NaN', Infinity, 2, -0);
  1763. t('NaN', Infinity, -1, -0);
  1764. t('NaN', Infinity, -2, -0);
  1765. t('NaN', Infinity, NaN, -0);
  1766. t('NaN', Infinity, Infinity, -0);
  1767. t('NaN', Infinity, -Infinity, -0);
  1768. // -Infinity
  1769. t('NaN', -Infinity, +0, -0);
  1770. t('NaN', -Infinity, -0, -0);
  1771. t('NaN', -Infinity, 1, -0);
  1772. t('NaN', -Infinity, 2, -0);
  1773. t('NaN', -Infinity, -1, -0);
  1774. t('NaN', -Infinity, -2, -0);
  1775. t('NaN', -Infinity, NaN, -0);
  1776. t('NaN', -Infinity, Infinity, -0);
  1777. t('NaN', -Infinity, -Infinity, -0);
  1778. // % 1
  1779. // 0
  1780. t('0', 0, +0, 1);
  1781. t('0', 0, -0, 1);
  1782. t('0', 0, 1, 1);
  1783. t('0', 0, 2, 1);
  1784. t('NaN', 0, -1, 1);
  1785. t('NaN', 0, -2, 1);
  1786. t('NaN', 0, NaN, 1);
  1787. t('0', 0, Infinity, 1);
  1788. t('NaN', 0, -Infinity, 1);
  1789. //-0
  1790. t('0', -0, +0, 1);
  1791. t('0', -0, -0, 1);
  1792. t('-0', -0, 1, 1);
  1793. t('0', -0, 2, 1);
  1794. t('NaN', -0, -1, 1);
  1795. t('NaN', -0, -2, 1);
  1796. t('NaN', -0, NaN, 1);
  1797. t('0', -0, Infinity, 1);
  1798. t('NaN', -0, -Infinity, 1);
  1799. // 1
  1800. t('0', 1, +0, 1);
  1801. t('0', 1, -0, 1);
  1802. t('0', 1, 1, 1);
  1803. t('0', 1, 2, 1);
  1804. t('0', 1, -1, 1);
  1805. t('0', 1, -2, 1);
  1806. t('NaN', 1, NaN, 1);
  1807. t('NaN', 1, Infinity, 1);
  1808. t('NaN', 1, -Infinity, 1);
  1809. // 2
  1810. t('0', 2, +0, 1);
  1811. t('0', 2, -0, 1);
  1812. t('0', 2, 1, 1);
  1813. t('0', 2, 2, 1);
  1814. t('0.5', 2, -1, 1);
  1815. t('0.25', 2, -2, 1);
  1816. t('NaN', 2, NaN, 1);
  1817. t('NaN', 2, Infinity, 1);
  1818. t('0', 2, -Infinity, 1);
  1819. // -1
  1820. t('0', -1, +0, 1);
  1821. t('0', -1, -0, 1);
  1822. t('-0', -1, 1, 1);
  1823. t('0', -1, 2, 1);
  1824. t('-0', -1, -1, 1);
  1825. t('0', -1, -2, 1);
  1826. t('NaN', -1, NaN, 1);
  1827. t('NaN', -1, Infinity, 1);
  1828. t('NaN', -1, -Infinity, 1);
  1829. // -2
  1830. t('0', -2, +0, 1);
  1831. t('0', -2, -0, 1);
  1832. t('-0', -2, 1, 1);
  1833. t('0', -2, 2, 1);
  1834. t('-0.5', -2, -1, 1);
  1835. t('0.25', -2, -2, 1);
  1836. t('NaN', -2, NaN, 1);
  1837. t('NaN', -2, Infinity, 1);
  1838. t('0', -2, -Infinity, 1);
  1839. // NaN
  1840. t('0', NaN, +0, 1);
  1841. t('0', NaN, -0, 1);
  1842. t('NaN', NaN, 1, 1);
  1843. t('NaN', NaN, 2, 1);
  1844. t('NaN', NaN, -1, 1);
  1845. t('NaN', NaN, -2, 1);
  1846. t('NaN', NaN, NaN, 1);
  1847. t('NaN', NaN, Infinity, 1);
  1848. t('NaN', NaN, -Infinity, 1);
  1849. // Infinity
  1850. t('0', Infinity, +0, 1);
  1851. t('0', Infinity, -0, 1);
  1852. t('NaN', Infinity, 1, 1);
  1853. t('NaN', Infinity, 2, 1);
  1854. t('0', Infinity, -1, 1);
  1855. t('0', Infinity, -2, 1);
  1856. t('NaN', Infinity, NaN, 1);
  1857. t('NaN', Infinity, Infinity, 1);
  1858. t('0', Infinity, -Infinity, 1);
  1859. // -Infinity
  1860. t('0', -Infinity, +0, 1);
  1861. t('0', -Infinity, -0, 1);
  1862. t('NaN', -Infinity, 1, 1);
  1863. t('NaN', -Infinity, 2, 1);
  1864. t('-0', -Infinity, -1, 1);
  1865. t('0', -Infinity, -2, 1);
  1866. t('NaN', -Infinity, NaN, 1);
  1867. t('NaN', -Infinity, Infinity, 1);
  1868. t('0', -Infinity, -Infinity, 1);
  1869. // % 2
  1870. // 0
  1871. t('1', 0, +0, 2);
  1872. t('1', 0, -0, 2);
  1873. t('0', 0, 1, 2);
  1874. t('0', 0, 2, 2);
  1875. t('NaN', 0, -1, 2);
  1876. t('NaN', 0, -2, 2);
  1877. t('NaN', 0, NaN, 2);
  1878. t('0', 0, Infinity, 2);
  1879. t('NaN', 0, -Infinity, 2);
  1880. //-0
  1881. t('1', -0, +0, 2);
  1882. t('1', -0, -0, 2);
  1883. t('-0', -0, 1, 2);
  1884. t('0', -0, 2, 2);
  1885. t('NaN', -0, -1, 2);
  1886. t('NaN', -0, -2, 2);
  1887. t('NaN', -0, NaN, 2);
  1888. t('0', -0, Infinity, 2);
  1889. t('NaN', -0, -Infinity, 2);
  1890. // 1
  1891. t('1', 1, +0, 2);
  1892. t('1', 1, -0, 2);
  1893. t('1', 1, 1, 2);
  1894. t('1', 1, 2, 2);
  1895. t('1', 1, -1, 2);
  1896. t('1', 1, -2, 2);
  1897. t('NaN', 1, NaN, 2);
  1898. t('NaN', 1, Infinity, 2);
  1899. t('NaN', 1, -Infinity, 2);
  1900. // 2
  1901. t('1', 2, +0, 2);
  1902. t('1', 2, -0, 2);
  1903. t('0', 2, 1, 2);
  1904. t('0', 2, 2, 2);
  1905. t('0.5', 2, -1, 2);
  1906. t('0.25', 2, -2, 2);
  1907. t('NaN', 2, NaN, 2);
  1908. t('NaN', 2, Infinity, 2);
  1909. t('0', 2, -Infinity, 2);
  1910. // -1
  1911. t('1', -1, +0, 2);
  1912. t('1', -1, -0, 2);
  1913. t('-1', -1, 1, 2);
  1914. t('1', -1, 2, 2);
  1915. t('-1', -1, -1, 2);
  1916. t('1', -1, -2, 2);
  1917. t('NaN', -1, NaN, 2);
  1918. t('NaN', -1, Infinity, 2);
  1919. t('NaN', -1, -Infinity, 2);
  1920. // -2
  1921. t('1', -2, +0, 2);
  1922. t('1', -2, -0, 2);
  1923. t('-0', -2, 1, 2);
  1924. t('0', -2, 2, 2);
  1925. t('-0.5', -2, -1, 2);
  1926. t('0.25', -2, -2, 2);
  1927. t('NaN', -2, NaN, 2);
  1928. t('NaN', -2, Infinity, 2);
  1929. t('0', -2, -Infinity, 2);
  1930. // NaN
  1931. t('1', NaN, +0, 2);
  1932. t('1', NaN, -0, 2);
  1933. t('NaN', NaN, 1, 2);
  1934. t('NaN', NaN, 2, 2);
  1935. t('NaN', NaN, -1, 2);
  1936. t('NaN', NaN, -2, 2);
  1937. t('NaN', NaN, NaN, 2);
  1938. t('NaN', NaN, Infinity, 2);
  1939. t('NaN', NaN, -Infinity, 2);
  1940. // Infinity
  1941. t('1', Infinity, +0, 2);
  1942. t('1', Infinity, -0, 2);
  1943. t('NaN', Infinity, 1, 2);
  1944. t('NaN', Infinity, 2, 2);
  1945. t('0', Infinity, -1, 2);
  1946. t('0', Infinity, -2, 2);
  1947. t('NaN', Infinity, NaN, 2);
  1948. t('NaN', Infinity, Infinity, 2);
  1949. t('0', Infinity, -Infinity, 2);
  1950. // -Infinity
  1951. t('1', -Infinity, +0, 2);
  1952. t('1', -Infinity, -0, 2);
  1953. t('NaN', -Infinity, 1, 2);
  1954. t('NaN', -Infinity, 2, 2);
  1955. t('-0', -Infinity, -1, 2);
  1956. t('0', -Infinity, -2, 2);
  1957. t('NaN', -Infinity, NaN, 2);
  1958. t('NaN', -Infinity, Infinity, 2);
  1959. t('0', -Infinity, -Infinity, 2);
  1960. // % -1
  1961. // 0
  1962. t('0', 0, +0, -1);
  1963. t('0', 0, -0, -1);
  1964. t('0', 0, 1, -1);
  1965. t('0', 0, 2, -1);
  1966. t('NaN', 0, -1, -1);
  1967. t('NaN', 0, -2, -1);
  1968. t('NaN', 0, NaN, -1);
  1969. t('0', 0, Infinity, -1);
  1970. t('NaN', 0, -Infinity, -1);
  1971. //-0
  1972. t('0', -0, +0, -1);
  1973. t('0', -0, -0, -1);
  1974. t('-0', -0, 1, -1);
  1975. t('0', -0, 2, -1);
  1976. t('NaN', -0, -1, -1);
  1977. t('NaN', -0, -2, -1);
  1978. t('NaN', -0, NaN, -1);
  1979. t('0', -0, Infinity, -1);
  1980. t('NaN', -0, -Infinity, -1);
  1981. // 1
  1982. t('0', 1, +0, -1);
  1983. t('0', 1, -0, -1);
  1984. t('0', 1, 1, -1);
  1985. t('0', 1, 2, -1);
  1986. t('0', 1, -1, -1);
  1987. t('0', 1, -2, -1);
  1988. t('NaN', 1, NaN, -1);
  1989. t('NaN', 1, Infinity, -1);
  1990. t('NaN', 1, -Infinity, -1);
  1991. // 2
  1992. t('0', 2, +0, -1);
  1993. t('0', 2, -0, -1);
  1994. t('0', 2, 1, -1);
  1995. t('0', 2, 2, -1);
  1996. t('0.5', 2, -1, -1);
  1997. t('0.25', 2, -2, -1);
  1998. t('NaN', 2, NaN, -1);
  1999. t('NaN', 2, Infinity, -1);
  2000. t('0', 2, -Infinity, -1);
  2001. // -1
  2002. t('0', -1, +0, -1);
  2003. t('0', -1, -0, -1);
  2004. t('-0', -1, 1, -1);
  2005. t('0', -1, 2, -1);
  2006. t('-0', -1, -1, -1);
  2007. t('0', -1, -2, -1);
  2008. t('NaN', -1, NaN, -1);
  2009. t('NaN', -1, Infinity, -1);
  2010. t('NaN', -1, -Infinity, -1);
  2011. // -2
  2012. t('0', -2, +0, -1);
  2013. t('0', -2, -0, -1);
  2014. t('-0', -2, 1, -1);
  2015. t('0', -2, 2, -1);
  2016. t('-0.5', -2, -1, -1);
  2017. t('0.25', -2, -2, -1);
  2018. t('NaN', -2, NaN, -1);
  2019. t('NaN', -2, Infinity, -1);
  2020. t('0', -2, -Infinity, -1);
  2021. // NaN
  2022. t('0', NaN, +0, -1);
  2023. t('0', NaN, -0, -1);
  2024. t('NaN', NaN, 1, -1);
  2025. t('NaN', NaN, 2, -1);
  2026. t('NaN', NaN, -1, -1);
  2027. t('NaN', NaN, -2, -1);
  2028. t('NaN', NaN, NaN, -1);
  2029. t('NaN', NaN, Infinity, -1);
  2030. t('NaN', NaN, -Infinity, -1);
  2031. // Infinity
  2032. t('0', Infinity, +0, -1);
  2033. t('0', Infinity, -0, -1);
  2034. t('NaN', Infinity, 1, -1);
  2035. t('NaN', Infinity, 2, -1);
  2036. t('0', Infinity, -1, -1);
  2037. t('0', Infinity, -2, -1);
  2038. t('NaN', Infinity, NaN, -1);
  2039. t('NaN', Infinity, Infinity, -1);
  2040. t('0', Infinity, -Infinity, -1);
  2041. // -Infinity
  2042. t('0', -Infinity, +0, -1);
  2043. t('0', -Infinity, -0, -1);
  2044. t('NaN', -Infinity, 1, -1);
  2045. t('NaN', -Infinity, 2, -1);
  2046. t('-0', -Infinity, -1, -1);
  2047. t('0', -Infinity, -2, -1);
  2048. t('NaN', -Infinity, NaN, -1);
  2049. t('NaN', -Infinity, Infinity, -1);
  2050. t('0', -Infinity, -Infinity, -1);
  2051. // % -2
  2052. // 0
  2053. t('1', 0, +0, -2);
  2054. t('1', 0, -0, -2);
  2055. t('0', 0, 1, -2);
  2056. t('0', 0, 2, -2);
  2057. t('NaN', 0, -1, -2);
  2058. t('NaN', 0, -2, -2);
  2059. t('NaN', 0, NaN, -2);
  2060. t('0', 0, Infinity, -2);
  2061. t('NaN', 0, -Infinity, -2);
  2062. //-0
  2063. t('1', -0, +0, -2);
  2064. t('1', -0, -0, -2);
  2065. t('-0', -0, 1, -2);
  2066. t('0', -0, 2, -2);
  2067. t('NaN', -0, -1, -2);
  2068. t('NaN', -0, -2, -2);
  2069. t('NaN', -0, NaN, -2);
  2070. t('0', -0, Infinity, -2);
  2071. t('NaN', -0, -Infinity, -2);
  2072. // 1
  2073. t('1', 1, +0, -2);
  2074. t('1', 1, -0, -2);
  2075. t('1', 1, 1, -2);
  2076. t('1', 1, 2, -2);
  2077. t('1', 1, -1, -2);
  2078. t('1', 1, -2, -2);
  2079. t('NaN', 1, NaN, -2);
  2080. t('NaN', 1, Infinity, -2);
  2081. t('NaN', 1, -Infinity, -2);
  2082. // 2
  2083. t('1', 2, +0, -2);
  2084. t('1', 2, -0, -2);
  2085. t('0', 2, 1, -2);
  2086. t('0', 2, 2, -2);
  2087. t('0.5', 2, -1, -2);
  2088. t('0.25', 2, -2, -2);
  2089. t('NaN', 2, NaN, -2);
  2090. t('NaN', 2, Infinity, -2);
  2091. t('0', 2, -Infinity, -2);
  2092. // -1
  2093. t('1', -1, +0, -2);
  2094. t('1', -1, -0, -2);
  2095. t('-1', -1, 1, -2);
  2096. t('1', -1, 2, -2);
  2097. t('-1', -1, -1, -2);
  2098. t('1', -1, -2, -2);
  2099. t('NaN', -1, NaN, -2);
  2100. t('NaN', -1, Infinity, -2);
  2101. t('NaN', -1, -Infinity, -2);
  2102. // -2
  2103. t('1', -2, +0, -2);
  2104. t('1', -2, -0, -2);
  2105. t('-0', -2, 1, -2);
  2106. t('0', -2, 2, -2);
  2107. t('-0.5', -2, -1, -2);
  2108. t('0.25', -2, -2, -2);
  2109. t('NaN', -2, NaN, -2);
  2110. t('NaN', -2, Infinity, -2);
  2111. t('0', -2, -Infinity, -2);
  2112. // NaN
  2113. t('1', NaN, +0, -2);
  2114. t('1', NaN, -0, -2);
  2115. t('NaN', NaN, 1, -2);
  2116. t('NaN', NaN, 2, -2);
  2117. t('NaN', NaN, -1, -2);
  2118. t('NaN', NaN, -2, -2);
  2119. t('NaN', NaN, NaN, -2);
  2120. t('NaN', NaN, Infinity, -2);
  2121. t('NaN', NaN, -Infinity, -2);
  2122. // Infinity
  2123. t('1', Infinity, +0, -2);
  2124. t('1', Infinity, -0, -2);
  2125. t('NaN', Infinity, 1, -2);
  2126. t('NaN', Infinity, 2, -2);
  2127. t('0', Infinity, -1, -2);
  2128. t('0', Infinity, -2, -2);
  2129. t('NaN', Infinity, NaN, -2);
  2130. t('NaN', Infinity, Infinity, -2);
  2131. t('0', Infinity, -Infinity, -2);
  2132. // -Infinity
  2133. t('1', -Infinity, +0, -2);
  2134. t('1', -Infinity, -0, -2);
  2135. t('NaN', -Infinity, 1, -2);
  2136. t('NaN', -Infinity, 2, -2);
  2137. t('-0', -Infinity, -1, -2);
  2138. t('0', -Infinity, -2, -2);
  2139. t('NaN', -Infinity, NaN, -2);
  2140. t('NaN', -Infinity, Infinity, -2);
  2141. t('0', -Infinity, -Infinity, -2);
  2142. // % NaN
  2143. // 0
  2144. t('NaN', 0, +0, NaN);
  2145. t('NaN', 0, -0, NaN);
  2146. t('NaN', 0, 1, NaN);
  2147. t('NaN', 0, 2, NaN);
  2148. t('NaN', 0, -1, NaN);
  2149. t('NaN', 0, -2, NaN);
  2150. t('NaN', 0, NaN, NaN);
  2151. t('NaN', 0, Infinity, NaN);
  2152. t('NaN', 0, -Infinity, NaN);
  2153. //-0
  2154. t('NaN', -0, +0, NaN);
  2155. t('NaN', -0, -0, NaN);
  2156. t('NaN', -0, 1, NaN);
  2157. t('NaN', -0, 2, NaN);
  2158. t('NaN', -0, -1, NaN);
  2159. t('NaN', -0, -2, NaN);
  2160. t('NaN', -0, NaN, NaN);
  2161. t('NaN', -0, Infinity, NaN);
  2162. t('NaN', -0, -Infinity, NaN);
  2163. // 1
  2164. t('NaN', 1, +0, NaN);
  2165. t('NaN', 1, -0, NaN);
  2166. t('NaN', 1, 1, NaN);
  2167. t('NaN', 1, 2, NaN);
  2168. t('NaN', 1, -1, NaN);
  2169. t('NaN', 1, -2, NaN);
  2170. t('NaN', 1, NaN, NaN);
  2171. t('NaN', 1, Infinity, NaN);
  2172. t('NaN', 1, -Infinity, NaN);
  2173. // 2
  2174. t('NaN', 2, +0, NaN);
  2175. t('NaN', 2, -0, NaN);
  2176. t('NaN', 2, 1, NaN);
  2177. t('NaN', 2, 2, NaN);
  2178. t('NaN', 2, -1, NaN);
  2179. t('NaN', 2, -2, NaN);
  2180. t('NaN', 2, NaN, NaN);
  2181. t('NaN', 2, Infinity, NaN);
  2182. t('NaN', 2, -Infinity, NaN);
  2183. // -1
  2184. t('NaN', -1, +0, NaN);
  2185. t('NaN', -1, -0, NaN);
  2186. t('NaN', -1, 1, NaN);
  2187. t('NaN', -1, 2, NaN);
  2188. t('NaN', -1, -1, NaN);
  2189. t('NaN', -1, -2, NaN);
  2190. t('NaN', -1, NaN, NaN);
  2191. t('NaN', -1, Infinity, NaN);
  2192. t('NaN', -1, -Infinity, NaN);
  2193. // -2
  2194. t('NaN', -2, +0, NaN);
  2195. t('NaN', -2, -0, NaN);
  2196. t('NaN', -2, 1, NaN);
  2197. t('NaN', -2, 2, NaN);
  2198. t('NaN', -2, -1, NaN);
  2199. t('NaN', -2, -2, NaN);
  2200. t('NaN', -2, NaN, NaN);
  2201. t('NaN', -2, Infinity, NaN);
  2202. t('NaN', -2, -Infinity, NaN);
  2203. // NaN
  2204. t('NaN', NaN, +0, NaN);
  2205. t('NaN', NaN, -0, NaN);
  2206. t('NaN', NaN, 1, NaN);
  2207. t('NaN', NaN, 2, NaN);
  2208. t('NaN', NaN, -1, NaN);
  2209. t('NaN', NaN, -2, NaN);
  2210. t('NaN', NaN, NaN, NaN);
  2211. t('NaN', NaN, Infinity, NaN);
  2212. t('NaN', NaN, -Infinity, NaN);
  2213. // Infinity
  2214. t('NaN', Infinity, +0, NaN);
  2215. t('NaN', Infinity, -0, NaN);
  2216. t('NaN', Infinity, 1, NaN);
  2217. t('NaN', Infinity, 2, NaN);
  2218. t('NaN', Infinity, -1, NaN);
  2219. t('NaN', Infinity, -2, NaN);
  2220. t('NaN', Infinity, NaN, NaN);
  2221. t('NaN', Infinity, Infinity, NaN);
  2222. t('NaN', Infinity, -Infinity, NaN);
  2223. // -Infinity
  2224. t('NaN', -Infinity, +0, NaN);
  2225. t('NaN', -Infinity, -0, NaN);
  2226. t('NaN', -Infinity, 1, NaN);
  2227. t('NaN', -Infinity, 2, NaN);
  2228. t('NaN', -Infinity, -1, NaN);
  2229. t('NaN', -Infinity, -2, NaN);
  2230. t('NaN', -Infinity, NaN, NaN);
  2231. t('NaN', -Infinity, Infinity, NaN);
  2232. t('NaN', -Infinity, -Infinity, NaN);
  2233. // % Infinity
  2234. // 0
  2235. t('1', 0, +0, Infinity);
  2236. t('1', 0, -0, Infinity);
  2237. t('0', 0, 1, Infinity);
  2238. t('0', 0, 2, Infinity);
  2239. t('NaN', 0, -1, Infinity);
  2240. t('NaN', 0, -2, Infinity);
  2241. t('NaN', 0, NaN, Infinity);
  2242. t('0', 0, Infinity, Infinity);
  2243. t('NaN', 0, -Infinity, Infinity);
  2244. //-0
  2245. t('1', -0, +0, Infinity);
  2246. t('1', -0, -0, Infinity);
  2247. t('-0', -0, 1, Infinity);
  2248. t('0', -0, 2, Infinity);
  2249. t('NaN', -0, -1, Infinity);
  2250. t('NaN', -0, -2, Infinity);
  2251. t('NaN', -0, NaN, Infinity);
  2252. t('0', -0, Infinity, Infinity);
  2253. t('NaN', -0, -Infinity, Infinity);
  2254. // 1
  2255. t('1', 1, +0, Infinity);
  2256. t('1', 1, -0, Infinity);
  2257. t('1', 1, 1, Infinity);
  2258. t('1', 1, 2, Infinity);
  2259. t('1', 1, -1, Infinity);
  2260. t('1', 1, -2, Infinity);
  2261. t('NaN', 1, NaN, Infinity);
  2262. t('NaN', 1, Infinity, Infinity);
  2263. t('NaN', 1, -Infinity, Infinity);
  2264. // 2
  2265. t('1', 2, +0, Infinity);
  2266. t('1', 2, -0, Infinity);
  2267. t('2', 2, 1, Infinity);
  2268. t('4', 2, 2, Infinity);
  2269. t('0.5', 2, -1, Infinity);
  2270. t('0.25', 2, -2, Infinity);
  2271. t('NaN', 2, NaN, Infinity);
  2272. t('NaN', 2, Infinity, Infinity);
  2273. t('0', 2, -Infinity, Infinity);
  2274. // -1
  2275. t('1', -1, +0, Infinity);
  2276. t('1', -1, -0, Infinity);
  2277. t('-1', -1, 1, Infinity);
  2278. t('1', -1, 2, Infinity);
  2279. t('-1', -1, -1, Infinity);
  2280. t('1', -1, -2, Infinity);
  2281. t('NaN', -1, NaN, Infinity);
  2282. t('NaN', -1, Infinity, Infinity);
  2283. t('NaN', -1, -Infinity, Infinity);
  2284. // -2
  2285. t('1', -2, +0, Infinity);
  2286. t('1', -2, -0, Infinity);
  2287. t('-2', -2, 1, Infinity);
  2288. t('4', -2, 2, Infinity);
  2289. t('-0.5', -2, -1, Infinity);
  2290. t('0.25', -2, -2, Infinity);
  2291. t('NaN', -2, NaN, Infinity);
  2292. t('NaN', -2, Infinity, Infinity);
  2293. t('0', -2, -Infinity, Infinity);
  2294. // NaN
  2295. t('1', NaN, +0, Infinity);
  2296. t('1', NaN, -0, Infinity);
  2297. t('NaN', NaN, 1, Infinity);
  2298. t('NaN', NaN, 2, Infinity);
  2299. t('NaN', NaN, -1, Infinity);
  2300. t('NaN', NaN, -2, Infinity);
  2301. t('NaN', NaN, NaN, Infinity);
  2302. t('NaN', NaN, Infinity, Infinity);
  2303. t('NaN', NaN, -Infinity, Infinity);
  2304. // Infinity
  2305. t('1', Infinity, +0, Infinity);
  2306. t('1', Infinity, -0, Infinity);
  2307. t('NaN', Infinity, 1, Infinity);
  2308. t('NaN', Infinity, 2, Infinity);
  2309. t('0', Infinity, -1, Infinity);
  2310. t('0', Infinity, -2, Infinity);
  2311. t('NaN', Infinity, NaN, Infinity);
  2312. t('NaN', Infinity, Infinity, Infinity);
  2313. t('0', Infinity, -Infinity, Infinity);
  2314. // -Infinity
  2315. t('1', -Infinity, +0, Infinity);
  2316. t('1', -Infinity, -0, Infinity);
  2317. t('NaN', -Infinity, 1, Infinity);
  2318. t('NaN', -Infinity, 2, Infinity);
  2319. t('-0', -Infinity, -1, Infinity);
  2320. t('0', -Infinity, -2, Infinity);
  2321. t('NaN', -Infinity, NaN, Infinity);
  2322. t('NaN', -Infinity, Infinity, Infinity);
  2323. t('0', -Infinity, -Infinity, Infinity);
  2324. // % -Infinity
  2325. // 0
  2326. t('1', 0, +0, -Infinity);
  2327. t('1', 0, -0, -Infinity);
  2328. t('0', 0, 1, -Infinity);
  2329. t('0', 0, 2, -Infinity);
  2330. t('NaN', 0, -1, -Infinity);
  2331. t('NaN', 0, -2, -Infinity);
  2332. t('NaN', 0, NaN, -Infinity);
  2333. t('0', 0, Infinity, -Infinity);
  2334. t('NaN', 0, -Infinity, -Infinity);
  2335. //-0
  2336. t('1', -0, +0, -Infinity);
  2337. t('1', -0, -0, -Infinity);
  2338. t('-0', -0, 1, -Infinity);
  2339. t('0', -0, 2, -Infinity);
  2340. t('NaN', -0, -1, -Infinity);
  2341. t('NaN', -0, -2, -Infinity);
  2342. t('NaN', -0, NaN, -Infinity);
  2343. t('0', -0, Infinity, -Infinity);
  2344. t('NaN', -0, -Infinity, -Infinity);
  2345. // 1
  2346. t('1', 1, +0, -Infinity);
  2347. t('1', 1, -0, -Infinity);
  2348. t('1', 1, 1, -Infinity);
  2349. t('1', 1, 2, -Infinity);
  2350. t('1', 1, -1, -Infinity);
  2351. t('1', 1, -2, -Infinity);
  2352. t('NaN', 1, NaN, -Infinity);
  2353. t('NaN', 1, Infinity, -Infinity);
  2354. t('NaN', 1, -Infinity, -Infinity);
  2355. // 2
  2356. t('1', 2, +0, -Infinity);
  2357. t('1', 2, -0, -Infinity);
  2358. t('2', 2, 1, -Infinity);
  2359. t('4', 2, 2, -Infinity);
  2360. t('0.5', 2, -1, -Infinity);
  2361. t('0.25', 2, -2, -Infinity);
  2362. t('NaN', 2, NaN, -Infinity);
  2363. t('NaN', 2, Infinity, -Infinity);
  2364. t('0', 2, -Infinity, -Infinity);
  2365. // -1
  2366. t('1', -1, +0, -Infinity);
  2367. t('1', -1, -0, -Infinity);
  2368. t('-1', -1, 1, -Infinity);
  2369. t('1', -1, 2, -Infinity);
  2370. t('-1', -1, -1, -Infinity);
  2371. t('1', -1, -2, -Infinity);
  2372. t('NaN', -1, NaN, -Infinity);
  2373. t('NaN', -1, Infinity, -Infinity);
  2374. t('NaN', -1, -Infinity, -Infinity);
  2375. // -2
  2376. t('1', -2, +0, -Infinity);
  2377. t('1', -2, -0, -Infinity);
  2378. t('-2', -2, 1, -Infinity);
  2379. t('4', -2, 2, -Infinity);
  2380. t('-0.5', -2, -1, -Infinity);
  2381. t('0.25', -2, -2, -Infinity);
  2382. t('NaN', -2, NaN, -Infinity);
  2383. t('NaN', -2, Infinity, -Infinity);
  2384. t('0', -2, -Infinity, -Infinity);
  2385. // NaN
  2386. t('1', NaN, +0, -Infinity);
  2387. t('1', NaN, -0, -Infinity);
  2388. t('NaN', NaN, 1, -Infinity);
  2389. t('NaN', NaN, 2, -Infinity);
  2390. t('NaN', NaN, -1, -Infinity);
  2391. t('NaN', NaN, -2, -Infinity);
  2392. t('NaN', NaN, NaN, -Infinity);
  2393. t('NaN', NaN, Infinity, -Infinity);
  2394. t('NaN', NaN, -Infinity, -Infinity);
  2395. // Infinity
  2396. t('1', Infinity, +0, -Infinity);
  2397. t('1', Infinity, -0, -Infinity);
  2398. t('NaN', Infinity, 1, -Infinity);
  2399. t('NaN', Infinity, 2, -Infinity);
  2400. t('0', Infinity, -1, -Infinity);
  2401. t('0', Infinity, -2, -Infinity);
  2402. t('NaN', Infinity, NaN, -Infinity);
  2403. t('NaN', Infinity, Infinity, -Infinity);
  2404. t('0', Infinity, -Infinity, -Infinity);
  2405. // -Infinity
  2406. t('1', -Infinity, +0, -Infinity);
  2407. t('1', -Infinity, -0, -Infinity);
  2408. t('NaN', -Infinity, 1, -Infinity);
  2409. t('NaN', -Infinity, 2, -Infinity);
  2410. t('-0', -Infinity, -1, -Infinity);
  2411. t('0', -Infinity, -2, -Infinity);
  2412. t('NaN', -Infinity, NaN, -Infinity);
  2413. t('NaN', -Infinity, Infinity, -Infinity);
  2414. t('0', -Infinity, -Infinity, -Infinity);
  2415. });
  2416. /*
  2417. Notes:
  2418. n to the power of 1 is n
  2419. Anything to the power of 0 is 1
  2420. A negative number to a non-integer power is NaN
  2421. 0 to negative power is Infinity
  2422. --------------------------------------------------------------------------------
  2423. If exponent is NaN, the result is NaN.
  2424. If exponent is +0, the result is 1, even if base is NaN.
  2425. If exponent is -0, the result is 1, even if base is NaN.
  2426. If base is NaN and exponent is nonzero, the result is NaN.
  2427. If abs(base) > 1 and exponent is +∞, the result is +∞.
  2428. If abs(base) > 1 and exponent is -∞, the result is +0.
  2429. If abs(base) is 1 and exponent is +∞, the result is NaN.
  2430. If abs(base) is 1 and exponent is -∞, the result is NaN.
  2431. If abs(base) < 1 and exponent is +∞, the result is +0.
  2432. If abs(base) < 1 and exponent is -∞, the result is +∞.
  2433. If base is +∞ and exponent > 0, the result is +∞.
  2434. If base is +∞ and exponent < 0, the result is +0.
  2435. If base is -∞ and exponent > 0 and exponent is an odd integer, the result is -∞.
  2436. If base is -∞ and exponent > 0 and exponent is not an odd integer, the result is +∞.
  2437. If base is -∞ and exponent < 0 and exponent is an odd integer, the result is -0.
  2438. If base is -∞ and exponent < 0 and exponent is not an odd integer, the result is +0.
  2439. If base is +0 and exponent > 0, the result is +0.
  2440. If base is +0 and exponent < 0, the result is +∞.
  2441. If base is -0 and exponent > 0 and exponent is an odd integer, the result is -0.
  2442. If base is -0 and exponent > 0 and exponent is not an odd integer, the result is +0.
  2443. If base is -0 and exponent < 0 and exponent is an odd integer, the result is -∞.
  2444. If base is -0 and exponent < 0 and exponent is not an odd integer, the result is +∞.
  2445. If base < 0 and base is finite and exponent is finite and exponent is not an integer, the result is NaN.
  2446. */