var count = (function sqrt(Big) {
var start = +new Date(),
log,
error,
passed = 0,
total = 0;
if (typeof window === 'undefined') {
log = console.log;
error = console.error;
} else {
log = function (str) { document.body.innerHTML += str.replace('\n', '
') };
error = function (str) { document.body.innerHTML += '
' +
str.replace('\n', '
') + '
' };
}
if (!Big && typeof require === 'function') Big = require('../big');
function assert(expected, actual) {
total++;
if (expected !== actual) {
error('\n Test number: ' + total + ' failed');
error(' Expected: ' + expected);
error(' Actual: ' + actual);
//process.exit();
}
else {
passed++;
//log('\n Expected and actual: ' + actual);
}
}
function assertException(func, message) {
total++;
try {
func();
error('\n Test number: ' + total + ' failed');
error('\n Expected: ' + message + ' to throw an exception');
error(' Actual: no exception');
//process.exit();
} catch (e) {
passed++;
//log('\n Expected and actual: ' + e);
}
}
function T(root, value) {
assert(root, new Big(value).sqrt().toString())
}
function isMinusZero(n) {
return n.toString() === '0' && n.s == -1;
}
log('\n Testing sqrt...');
Big.DP = 20;
Big.RM = 1;
T('2', 4);
T('0', 0);
T('0', -0);
T('0', '0');
T('0', '-0');
T('1', 1);
T('1', '1');
T('0.1', 0.01);
assert(false, isMinusZero(new Big(0).sqrt()));
assert(false, isMinusZero(new Big('0').sqrt()));
assert(true, isMinusZero(new Big(-0).sqrt()));
assert(true, isMinusZero(new Big('-0').sqrt()));
// Test against Math.sqrt of squared integers.
for (var i = 0; i < 1e3; i++) {
var j = Math.floor(Math.random() * Math.pow(2, Math.floor(Math.random() * 26) + 1));
j = Math.pow(j, 2);
T(Math.sqrt(j).toString(), j.toString());
}
// Initial rounding tests.
Big.DP = 0;
Big.RM = 0;
T('10', '101');
T('10', '111');
T('999', 999000.25);
T('0', 0.25);
Big.RM = 1;
T('10', '101');
T('11', '111');
T('1000', 999000.25);
T('1', 0.25);
Big.RM = 2;
T('10', '101');
T('11', '111');
T('1000', 999000.25);
T('0', 0.25);
T('1.850249442642802149156602e+24', '3423.423e45');
Big.DP = 2;
Big.RM = 0;
T('0', '0.0000001');
Big.DP = 1;
Big.RM = 1;
T('2.6', '7');
T('10.6', '112.439121106');
T('1007.1', '1014216.88354115504848');
T('14496268662.7', '210141805141682355705.090');
T('220983929785.7', '48833897223529771949253.378778868849049559624562513592321569');
T('1180052939140.7', '1392524939174533146207410.12619352287');
T('120468836204612.6', '14512740496493785900839846763.82328768609126547');
Big.DP = 10;
T('1.0998820819', '1.20974059415009437172900');
T('4372247436270791523.3453396636', '19116547643976509183347719022510178407.6659485696744517151189447');
T('645.6559215353', '416871.569013637');
T('9.3832989934', '88.0463');
T('20195394139.0634492424', '407853944432118316238.060');
T('203574.8431903851', '41442716779.9898655080652537763202594320363763900771333411614469322118841');
T('434835511792648.9460364767', '189081922315974940615057855618.468666216438821105981678672603');
T('76418328144.477890944', '5839760876397101738682.29836547353');
Big.DP = 20;
T('346.00153309920463414559', '119717.060907');
T('263359760985014.62241224437474495709', '69358363706084030080212405554.3002793975414740876419285502');
T('4.14645859760929707104', '17.193118901688058566035426');
T('492974271191746.46231483998877250102', '243023632057033585989741137703.800100153395469328387');
T('164.78781194238374484766', '27155.022964758430758944789724435');
T('7366.78400597487165781255', '54269506.59068717789735301787194313247');
T('23762326490698.34975320239967323205', '564648160250544549780100380.5514166040523');
T('5.291502622129181181', '28');
T('11.47156968462642430546', '131.59691102924');
T('316358493873927157.1740897995245240711', '100082696646179606634487051294887359.5035240594546');
T('500048686.48939798981543930512', '250048688859772239.7160140065116884182948058142834537');
T('6022.37550162532363706717', '36269006.68257686850553015065182301017562876');
T('6.8460154244205197188', '46.86792719140366873824501484885278');
T('45189.48536114270306146252', '2042089587.204930656134881238462876156607');
T('856160326.88774167756915629603', '733010505336524684.93087677');
T('522130.17609423801622137924', '272619920788.2');
T('52292561.72399606203863014237', '2734512011657938');
Big.DP = 73;
T('26887623635.3707912464629567820776000467035000476700672842803068855485151227900078069', '722944304757350004189.2345');
T('196.9765983083095309326276839454825311907994129311587833723243476358522465777', '38799.78028111312916322430363229763959902004100996');
T('120016703223.6151811849913819241621570830640571538995217287681670128389432142005932891', '14404009052665322623144.3467403');
T('15.1179067962466285341140019013436699388546686629569704817549228235938583883', '228.5511059');
T('88.8125725884151110485104354919995585100283886785637267479492612921303631122', '7887.6730497725031780');
T('19107253881509743.3779260316306131671181869224843248420235662435238492667857670998535738552', '365087150892469154433642273521263.83276841');
T('400.3068500117233817006410985991134968372763336206911625632292309118077689013', '160245.5741663084');
Big.DP = 100;
T('1.7320508075688772935274463415058723669428052538103806280558069794519330169088000370811461867572485757', 3);
T('1.0488088481701515469914535136799375984752718576815039848757557635800059255011006914193852889331944178', 1.1);
T('0.3162277660168379331998893544432718533719555139325216826857504852792594438639238221344248108379300295', 0.1);
T('0.9486832980505137995996680633298155601158665417975650480572514558377783315917714664032744325137900886', 0.9);
T('0.99999999999999999999999999999999999999994999999999999999999999999999999999999999875', '0.9999999999999999999999999999999999999999');
T('11111.1110609999998870049994903925471271162312358157188236047401971668110785559489100264545730662845742184','123456789.00987654321');
Big.DP = 17;
Big.RM = 1;
T('44.40502294864850084', '1971.80606307');
Big.DP = 97;
Big.RM = 0;
T('14192376.643123461322847366137186892667087869800484670508360531721790645551341594437545247745705539930735', '201423554780276.3686384009255372');
Big.DP = 4;
Big.RM = 1;
T('2553252336.0331', '6519097491458426345.3554782053764871036657698339691144086');
Big.DP = 20;
Big.RM = 1;
T('62.30949119560079364913', '3882.4726930546528212066');
Big.DP = 82;
Big.RM = 1;
T('174228234.709795821707519878032640346805381350977820681861118903584344693715322225768054125', '30355477770091701.53717021425249799086667828628302277998976752563');
Big.DP = 54;
Big.RM = 2;
T('163256493.009563679477426538597267934928790668772138046453329418', '26652682509781714.54341292267818515442604');
Big.DP = 57;
Big.RM = 2;
T('6413898755.503103237879757203310804711689478588298288050385897319721', '41138097245844256487.4');
Big.DP = 41;
Big.RM = 1;
T('651.83586891179899229526795359574620017366743', '424890');
Big.DP = 67;
Big.RM = 0;
T('3.1691816831920187703897673787206897581382652839389771357354751032132', '10.043712541079797228859738302727066114683041689841812835450076520');
Big.DP = 97;
Big.RM = 2;
T('118594.4273063315320244062844564170472198563498805200012242127200252960812599679770627273052218882949925', '14064638188.1167541187722341530354253926613230053009933342');
Big.DP = 5;
Big.RM = 1;
T('5248173.56787', '27543325798538.753780506094441280733789361778933753426582596791104');
Big.DP = 23;
Big.RM = 2;
T('6.05855328019481326674235', '36.7060678489593315124567');
Big.DP = 93;
Big.RM = 2;
T('164207.20075782859923311531097410558094817321169039986325465336651402772907533144002814794168144323', '26964004780.7218252942882108');
Big.DP = 54;
Big.RM = 2;
T('2.723397260313830449769700482256736114679660269490922765', '7.4168926374848775741132294');
Big.DP = 75;
Big.RM = 2;
T('145626737347.699863159799647089039014085200730659988131836086866937945539247414906654868', '21207146630535962175511.4592');
Big.DP = 69;
Big.RM = 0;
T('15625591.477694858909123645800863577029584072458683168542082897370551849161553', '244159109027810.20442572274363387');
Big.DP = 16;
Big.RM = 0;
T('85762713.1327157666976061', '7355242963884497.437336977648000579022368327415840055129120741942567239');
Big.DP = 2;
Big.RM = 0;
T('74629.64', '5569583803.0907402');
Big.DP = 62;
Big.RM = 2;
T('44.05501263636205450407476438041804283847324427155286698836103844', '1940.8441383900203');
Big.DP = 24;
Big.RM = 0;
T('1119.912102354466031064620923', '1254203.117');
Big.DP = 64;
Big.RM = 0;
T('92093628036.6480124503328403126750210810151658188780763586760022178450462311', '8481236324952480852423.718960437545027');
Big.DP = 34;
Big.RM = 1;
T('1947605507655512.1474872179815308192647511525219417', '3793167213450085186132700081381');
Big.DP = 94;
Big.RM = 2;
T('557716086077.5080956743653150675842959387446784555727262266063122593621607958161147001199667165261203780317', '311047232669614419511648.6130023664452767398438696');
Big.DP = 19;
Big.RM = 0;
T('3.6766253682232922013', '13.517574098263058968167681315043395710343763189956497798543');
Big.DP = 40;
Big.RM = 1;
T('374863740368.0156985152529892838083189109926642299794', '140522823842699082383715.919571886197001394994582');
Big.DP = 63;
Big.RM = 0;
T('3039991938095044282.834999396730197828406224765246402870200714765906547758763203772', '9241550983682863551151813316288949279.9625949439074666');
Big.DP = 29;
Big.RM = 1;
T('948722.35086770259132293410301310241', '900074099035.9401838348750892');
Big.DP = 36;
Big.RM = 0;
T('23603002885797536.790280728725364655699852314300322649', '557101745226966849549415425061219.969394346783798760227');
Big.DP = 18;
Big.RM = 0;
T('247788926631.668855265587728589', '61399352161274570866824.398764295216033428917127');
Big.DP = 16;
Big.RM = 0;
T('5.8309518948453004', '34');
Big.DP = 35;
Big.RM = 0;
T('756731558.25262830674557663857258007802853198', '572642651255450988.3807853');
Big.DP = 29;
Big.RM = 0;
T('315.35186696767786854256245741213', '99446.8');
Big.DP = 28;
Big.RM = 0;
T('21743622919.6152043904934006640996008653', '472785137670415625131.3819412384141603569725008109774351813892945');
Big.DP = 59;
Big.RM = 0;
T('9931.93848832625073050157085444478223645326098496189725178399175', '98643402.13589633051811977376659116574508796');
Big.DP = 32;
Big.RM = 2;
T('12491945070243173325.00123703924746770276608629177675', '156048691637972720536868554818649758614');
Big.DP = 42;
Big.RM = 1;
T('1.986294948124507296707366989944167364007457', '3.94536762094493913289346223994950919328456012507449654266826');
Big.DP = 62;
Big.RM = 2;
T('1854467167302463060.67001538852537388423828924920448451675904798181668319798201139', '3439048474602821519577229021879982239.2082');
Big.DP = 51;
Big.RM = 0;
T('2088927.797138422758659686170900239830365738839263869523289', '4363619341657.58350562244267149496471405124');
Big.DP = 61;
Big.RM = 2;
T('90061141477839967.2682846126818450599184988316687847204716382695549492605718861', '8111009204291506563499764980695382.1759246268375');
Big.DP = 10;
Big.RM = 2;
T('1476747291384.9099630858', '2180782562612668171679967.63324');
Big.DP = 84;
Big.RM = 2;
T('9210807993.639856342437524083401141956511342156180578284602614905116773271331676341823693120447', '84838983895699875876');
Big.DP = 26;
Big.RM = 2;
T('3.37200237247840619012635848', '11.3704');
Big.DP = 16;
Big.RM = 1;
T('2693874.2163861651089144', '7256958293710.1751161960');
Big.DP = 74;
Big.RM = 2;
T('5732941347.55256238286493674720703619067740838113000509955135586822000095629002988639', '32866616494477789872.3518055761631860371');
Big.DP = 4;
Big.RM = 2;
T('16288419988283588.674', '265312625714716342994884296792766');
Big.DP = 37;
Big.RM = 1;
T('365543004.8061649872764474380277913079084143042', '133621688362719958.9872107366');
Big.DP = 61;
Big.RM = 1;
T('12782418240925459479.2031797451385115697726882124289981424172567856909899486963994', '163390216085943917855551726128161143915.02664633');
Big.DP = 43;
Big.RM = 1;
T('12.07324881148295353275508188921102928327377', '145.76333686397455005144032806105');
Big.DP = 40;
Big.RM = 1;
T('29.6490992649274348544759045400715775766925', '879.06908722152055781935911221883768070437');
Big.DP = 51;
Big.RM = 2;
T('4.666365343768356140513396346961342877525930132228624', '21.7749655215223685799362730400310696');
Big.DP = 42;
Big.RM = 0;
T('17.122151356727858418696401754969183602519558', '293.168067082697642757847');
Big.DP = 29;
Big.RM = 2;
T('109652272385643.1603769184581163062699906986', '12023620839335281581899617727.8772961473185586727206798164');
Big.DP = 90;
Big.RM = 2;
T('13489.123629030538320414969169194877155101718802208604977345597134035561855309153297129880622467', '181956456.27927');
Big.DP = 48;
Big.RM = 1;
T('2.372129844675455365912878765809140727257324413647', '5.627');
Big.DP = 41;
Big.RM = 0;
T('739871537758100310.43883822919081011754036378492392360075543', '547409892384536053343836850938988791.2508666160979');
Big.DP = 54;
Big.RM = 0;
T('77140.793792105688747751462443855549841986175279935245610391', '5950702066.8761715670568717062071879678486494595966218026');
Big.DP = 93;
Big.RM = 0;
T('162820594803834668.752129825654424512211529624619694188452350414129430986701621110932095616631076098099130503248', '26510546092274513134180208644185957.57422670990654');
Big.DP = 84;
Big.RM = 0;
T('939333.959604513485668563847772506141997730133849933463092593953521840168273751255714815246', '882348287666.2937728893202363');
Big.DP = 9;
Big.RM = 1;
T('4.568369512', '20.87');
Big.DP = 87;
Big.RM = 1;
T('370.818280526354041083927163168590728498008550586626184882319882834674931772525681078764889', '137506.1971725218006486309891482928119051089854653');
Big.DP = 32;
Big.RM = 1;
T('459260874.20127731126343992531130965108732', '210920550572121463.814947484719373265508800614967431627085952061224891');
Big.DP = 43;
Big.RM = 1;
T('34146881023818508.954756503743080316053431668549275132795068', '1166009483654816582318330803409852.007911');
Big.DP = 26;
Big.RM = 2;
T('411369926586282.35173941504630680193130958', '169225216499603331644025273726.130552532747109702369176231397148094894');
Big.DP = 42;
Big.RM = 1;
T('146.837594711181641908188613240193044745216301', '21561.27922056523889531529752');
Big.DP = 80;
Big.RM = 0;
T('2436.80241424922206290898076140846108744470830585565672963845308477988719476570192112', '5938006.00609083724509944');
Big.DP = 40;
Big.RM = 0;
T('5968940791314695.9391845388865719907476112181090409748506', '35628254170220508537420332407309.79446040');
Big.DP = 9;
Big.RM = 2;
T('7757883860673599094.299765297', '60184761995699906684011270143497832606.405945309948');
Big.DP = 43;
Big.RM = 2;
T('2.2181073012818834324103200205219865836926753', '4.92');
Big.DP = 73;
Big.RM = 1;
T('910.9629520458008175934592151820959436914447449057963517034109551518362704397', '829853.5');
Big.DP = 81;
Big.RM = 2;
T('4.242640687119285146405066172629094235709015626130844219530039213972197435386321117', '18');
Big.DP = 12;
Big.RM = 1;
T('1259229966702.622212273094', '1585660109041887045436663.9');
Big.DP = 26;
Big.RM = 0;
T('163.04833062468649267909332731', '26584.7581194970792');
Big.DP = 64;
Big.RM = 2;
T('4204818551811.1334068235516094940662770670832347987097641633616076970760141535', '17680499053655077194352936.9862782964932');
Big.DP = 9;
Big.RM = 1;
T('39405180.06334322', '1552768215824502');
Big.DP = 2;
Big.RM = 2;
T('11019819.18', '121436414839837.12468');
Big.DP = 46;
Big.RM = 0;
T('2.7666477911002694164386944265228742439351110337', '7.65434');
Big.DP = 22;
Big.RM = 1;
T('79.8964796181302813829514', '6383.4474553703074736391804543616');
Big.DP = 97;
Big.RM = 1;
T('256884.8986204117896931254014585418288760261941990857711922965396545498637125556442506103725098664222399', '65989851139.2192430115427289');
Big.DP = 26;
Big.RM = 1;
T('51576.16987553369007338491641136', '2660101299.0299088953962881552848995811');
Big.DP = 30;
Big.RM = 1;
T('83117929425.537107714299371091957543379566', '6908590191988567392806.80486418318444628');
Big.DP = 41;
Big.RM = 0;
T('65772725.59339738278078887228018658173869609912689', '4326051431984351.09884157745017974');
Big.DP = 98;
Big.RM = 0;
T('353254.68729598168174020062443678572940775163547873542847911555211434402472387360698376451692274187949171', '124788874096.581801769341529731');
Big.DP = 24;
Big.RM = 0;
T('4710250560799.345071943574342121547002', '22186460345510544746149875.21079977475782182108767576173806601062569351');
Big.DP = 58;
Big.RM = 0;
T('1922328.5814452710447231491355356265501994748371717620744762610836', '3695347175041.3880723243439344');
Big.DP = 15;
Big.RM = 1;
T('89116010281422470.490792878028479', '7941663288478595468163012949770631.031610');
Big.DP = 55;
Big.RM = 1;
T('893056745827291.2797429722245393357197289561968389609411292397482876045', '797550351267631140592697284483.78129');
Big.DP = 91;
Big.RM = 0;
T('776.5090582120990070056744810742483620827196187879468568581488531077672537925651203290541573461', '602966.31748544096431040937268');
Big.DP = 93;
Big.RM = 0;
T('2995751.634073306004244447026435588871407905052680216908898588671550117511803869048557530431723092132', '8974527853052.88312');
Big.DP = 18;
Big.RM = 1;
T('10256041108976420629.199454567907275476', '105186379229014287888491059604397048384.620569192314');
Big.DP = 31;
Big.RM = 1;
T('1668.6764282929150311920750595338744', '2784481.0223404');
Big.DP = 67;
Big.RM = 0;
T('10.2385664037012525496880466372434589015640964461096948083431020419951', '104.828242003');
Big.DP = 84;
Big.RM = 0;
T('68651941131739807.174750106032127662294695087292808832370099322483965602512157211426100868174677659683', '4713089021155867956380018732563084.26698833111');
Big.DP = 21;
Big.RM = 2;
T('2119642072.680265413658964490823', '4492882516276291566.29881022242536487557872701343389871875');
Big.DP = 98;
Big.RM = 2;
T('295414.57241487468020923791493376733960197400575508671338810222236013093392808359746725949898886883126268', '87269769595.06323634741877845138');
Big.DP = 33;
Big.RM = 2;
T('37516617.579099132622513300879884121967683', '1407496594576370.06261787957718');
Big.DP = 28;
Big.RM = 1;
T('1770073.1489207444615594580039659422', '3133158952530.2');
Big.DP = 90;
Big.RM = 1;
T('2062559182194.651333939625538780888106868996091400331597659659567648164339407129332825200701125200486512', '4254150380055468916249334.9191129113190464726018607977');
Big.DP = 8;
Big.RM = 1;
T('12.07145393', '145.72');
Big.DP = 97;
Big.RM = 1;
T('25034434221195.1626546646428355078518084227214031163523557198228259498967796293623093732280578488089414910009545', '626722896775347450122233568.221736229089870371148583168');
Big.DP = 50;
Big.RM = 1;
T('1369370604956.05098382437442746815592765507526977434916820834002', '1875175853717701043262789.163');
Big.DP = 75;
Big.RM = 1;
T('61111046097989.562614478991002463202122550327564207016373610481385147575687339517642575745', '3734559955190605346508566151.747128467087991987800252614000906073017');
Big.DP = 9;
Big.RM = 2;
T('487839154280.605258799', '237987040449216180199565.97996551897500100835854353148858639128012');
Big.DP = 30;
Big.RM = 0;
T('3771198.65750627716579658341655388678', '14221939314377.1471847');
Big.DP = 91;
Big.RM = 0;
T('998223.9287829203446196803384884403292209921824958032442949937536171090461827984654389784946553623', '996451011994.8088280477062132');
Big.DP = 10;
Big.RM = 1;
T('5126338484054822038.6885613203', '26279346253101490909404023029363590984.22045482623574089');
Big.DP = 37;
Big.RM = 0;
T('4435299142639732.0386665272768109416139138688675365733', '19671878484700742088824375591214.762823606521949640217195100557734');
Big.DP = 29;
Big.RM = 0;
T('1840.27953983121746818190253230579', '3386628.78472139752');
Big.DP = 29;
Big.RM = 1;
T('18505.45444317533478496724906701013', '342451844.14843774');
Big.DP = 84;
Big.RM = 1;
T('15478.581565616610788736047569976878217626279567162328064930393795809558245153963295159638', '239586487.28344637');
Big.DP = 80;
Big.RM = 0;
T('8.83176086632784685476404272695925396417463948093141782621020297255713993823544284', '78');
Big.DP = 55;
Big.RM = 0;
T('904094739518026362.276858998253417589801385050899447007512426103468322262', '817387298024167938863983875545245626.80');
Big.DP = 86;
Big.RM = 0;
T('6130.86992934880235087497305800565551205615083568452544051362005512506946811033000392166546', '37587566.09059338872940942140');
Big.DP = 76;
Big.RM = 1;
T('24.7386337537059632989284591358444621508831953522417226063918014385697260780257', '612.0');
Big.DP = 30;
Big.RM = 0;
T('31.610335068913719526253073315531', '999.2132831689965253909026235101062925484544085049');
Big.DP = 37;
Big.RM = 1;
T('10249810.4776964144606649104434449145329654563', '105058614828695.2');
Big.DP = 24;
Big.RM = 0;
T('25529284068924417.312616362288832310787818', '651744345071838052967175093720670.309523048811416290');
Big.DP = 22;
Big.RM = 1;
T('468012.3980129886634423908716', '219035604693.86811504914527871748991009824119534');
Big.DP = 6;
Big.RM = 0;
T('39070.768987', '1526524989.297643871802383576028102147694626812685590152575');
Big.DP = 46;
Big.RM = 1;
T('1250964.0328412267817990068707571462032258488049181937', '1564911011462.3859182790021956920389318080447013349220674');
Big.DP = 81;
Big.RM = 1;
T('46143126703751828496.866649027371445895940007418220059475791917987944465104919918209683758208288829164', '2129188141998495085389252895218765450927.7063857106');
Big.DP = 60;
Big.RM = 1;
T('64866.977655547797763275486444509839974560207365651674817907766434', '4207724790.165337269565');
Big.DP = 84;
Big.RM = 2;
T('2.94358860030385493881670889399291911046241548916385003586188315285977498131365266043', '8.664713847838807868001451403595636253922161359756547');
Big.DP = 83;
Big.RM = 2;
T('424.99280768859670787492492363122383472286022111724084853084296368784059306715270358792', '180618.886587036545015612122512773593063212916813764199769387313');
Big.DP = 51;
Big.RM = 0;
T('126427741490350.05876064315047378101790577982019123921425265937548', '15983973818350781697093926569.612618127837088601804542393750879971390');
Big.DP = 36;
Big.RM = 1;
T('10.406728592598156155682425873215240545', '108.30');
Big.DP = 91;
Big.RM = 1;
T('1183519938.0327546884078159164077132538648035819895600967199921207723839756282768130542759614616292199', '1400719443721055497.588328093817233056244752470');
Big.DP = 32;
Big.RM = 1;
T('241257503.34869155337527048121955221501097', '58205182922043916.0906037558925342272671667138');
Big.DP = 69;
Big.RM = 2;
T('1.486678588956157516725362331766399749551245061708835963596471115535207', '2.2102132268606715586559333071481289982224051499');
Big.DP = 65;
Big.RM = 0;
T('2514912879934.47954895904718779302011160467785506374230597396840365067162301819', '6324786793660337947551689.6597215');
Big.DP = 52;
Big.RM = 1;
T('2.8178317099209633246681281054844265828694464028893106', '7.94017554543610');
Big.DP = 51;
Big.RM = 2;
T('81.917085580481926713094910295288886277402363899734148', '6710.40891');
Big.DP = 32;
Big.RM = 1;
T('324.26623374592211771183741217403875', '105148.590347765');
Big.DP = 43;
Big.RM = 1;
T('1662149798843078.4069237887302461551370934948249024202080631', '2762741953794086012243855678967.8');
Big.DP = 89;
Big.RM = 0;
T('75328512486.03568083840615998761042897028410187816426562961651629515834372852207961734642188953302492', '5674384793358833469158.7800150542809744853291679751200');
Big.DP = 81;
Big.RM = 1;
T('5798169.528389841210757172244446608220276215346825819225777169316424526085117502743814039', '33618769879948.4736420937');
Big.DP = 96;
Big.RM = 0;
T('29119162498.850656252014862720939576335974293913751260474542935386631954376862430745731464008616766564510391', '847925624634470395269.44447102349587477');
Big.DP = 38;
Big.RM = 2;
T('168.23340288442161387499486814301418324124', '28302.477846072118591243169889731912227');
Big.DP = 13;
Big.RM = 1;
T('84.717176534632', '7177');
Big.DP = 27;
Big.RM = 0;
T('13.385220437154074004622844494', '179.1641261512071');
Big.DP = 23;
Big.RM = 0;
T('50518253294056311797.1731845046869551098465', '2552093915882431397702073747003243930704.039747494091408300134971');
Big.DP = 52;
Big.RM = 1;
T('97932545.8343664485428157368834804942294639641837112693533951', '9590783533600285.2329863436120504074140917839');
Big.DP = 58;
Big.RM = 1;
T('662542878881.876031608894840844837559122854993420182484052151826850145', '438963066357084252820457.6516316337481795');
Big.DP = 75;
Big.RM = 0;
T('2.408258174236454324395775462046657264396664516691587445008530664989455090566', '5.7997074337767003950634583826104408675441912175');
Big.DP = 16;
Big.RM = 1;
T('973.3437664448876512', '947398.08767712');
Big.DP = 8;
Big.RM = 1;
T('253803.10166048', '64416014412.481521657597915615475256293');
Big.DP = 48;
Big.RM = 1;
T('10979495135456507.342255564998728572391728604678115723240759397693', '120549313429513108511981910613966.523081580');
Big.DP = 50;
Big.RM = 1;
T('13.1438229181471400406148696794413041749550438491914', '172.76008090361');
Big.DP = 38;
Big.RM = 0;
T('140388.44002034207101031451179095355772785653', '19708914091.345183231428356292375830226197664009');
Big.DP = 6;
Big.RM = 2;
T('242308.729399', '58713520342.9660909760390092854509');
Big.DP = 21;
Big.RM = 2;
T('563619360203.007379904114453023253', '317666783195647379114879.695054964988341456801');
assertException(function () {new Big(-1).sqrt()}, "-1");
assertException(function () {new Big('-1').sqrt()}, "'-1'");
assertException(function () {new Big(-0.00000000001).sqrt()}, "-0.00000000001");
assertException(function () {new Big('-0.00000000001').sqrt()}, "'-0.00000000001'");
assertException(function () {new Big(-2.3).sqrt()}, "-2.3");
assertException(function () {new Big('-2.3').sqrt()}, "'-2.3'");
assertException(function () {new Big(-9.9e9).sqrt()}, "-9.9e9");
assertException(function () {new Big('-9.9e9').sqrt()}, "'-9.9e9'");
// ROUND_UP
Big.DP = 0;
Big.RM = 3;
T('11', '101');
T('11', '111');
T('1000', 999000.25);
T('1', 0.25);
T('1', 0.001);
Big.DP = 2;
T('0.04', 0.001);
log('\n ' + passed + ' of ' + total + ' tests passed in ' + (+new Date() - start) + ' ms \n');
return [passed, total];;
})(this.Big);
if (typeof module !== 'undefined' && module.exports) module.exports = count;