### ----------------------------------------------------
### -- BigRoot
### -- Licenses: Artistic-2.0
### -- Authors: Julio
### -- File: t/03-rational-roots.t
### ----------------------------------------------------
### -- Chunk 3 of 3
9259757897'
                ~ '40021037689882373208794782149875146990578695414792773318665108771799870759882876'
                ~ '81324844204536657023325022736689465793226421053501787589668926986070557064260255'
                ~ '64230537188596875130349021860798499173292188477369400430710036075600037402222630'
                ~ '38757508021829917781615294669100052819611366428762320150292365576898093624962937'
                ~ '86194860000218039686417332618450276224223198962559273567816244487563820375559880'
                ~ '68153054812076468301065434832557349776171508202428573349326207221760036376870803'
                ~ '64737306443375500823956153051623076834731243671350026068913191873181949380155312'
                ~ '61903127325669727995950987512768105934465671268060631833099177222445991999373654'
                ~ '02856814478292460032347088166287287609178441108220359070271177054269596987575226'
                ~ '75821513119908290578355403151626975153603724858444595533242308449942266834792063'
                ~ '93527818701024641895233285506948776667777399959832927673500648372649725683756939'
                ~ '92192761655025992676347874844190695172326443261040540703407498059713705119162838'
                ~ '59099903531051642469462163953266026835016302473550463032146417636591281452695290'
                ~ '11775152272378723740257808053584529409899357447480516260166952795128926526709935'
                ~ '05714990740302542013889288412492350728857899720984104364642676865255067039765898'
                ~ '41729814192118433091475381919027787579953252575417366470119281961003771396399481'
                ~ '13201088306427681469956308161887081519363122677928641680830630204864864953012711'
                ~ '64819570693623021126477960802760762969947057488858138786887467636021802035771841'
                ~ '12813815394527818678223227369333398636136764693480778447344585103320489371949215'
                ~ '27165807457058994316738127458190067371902364774480773133607688197182719993176601'
                ~ '24559950582736989123410398658319898464868082745450761527368059037473963594707331'
                ~ '41919884409502119288151814156004078724649436476082755985674793471761927790947876'
                ~ '94257901246089689464940887646780502629827718895042558542922134450536711104186202'
                ~ '81965006482082713623777868834126960363775807704874568690082799053501678149858631'
                ~ '18979855994804120333722021211476724068739227984741004118273824495762896439400911'
                ~ '29259212360305914535493308050448064304021253611849385883682930338538859406328949'
                ~ '78451067136389402111721507900625149755854364403961361013102694378525301997408077'
                ~ '44787230525618234300327967836764160742153288944622511885958616831497150994256991'
                ~ '35415378261062783038566321498744520929674824224821054809161538154998064335230639'
                ~ '93132194860178056957584419789110280699133552658736837825856457778758278513158061'
                ~ '23408439034928533435257201475309650978981647340980835796558938962674201087514704'
                ~ '58525187913619074335954355476856332239198639756300748804465058803330271929767978'
                ~ '37542533335289185656144954839610236680715452603883011244541853377630201748162043'
                ~ '26091022387379406797517983268735331049193800459327812364691984488743231363774335'
                ~ '70039104385380954017775257634024871814476843771818864605048017456726822692004949'
                ~ '27010815263486057122065766289279051991155428324995031985772068820209506693549060'
                ~ '87455737715223924537178962779576870245033381352375826468924154485277978223503871'
                ~ '51073510179543472161559709985867497151758815938978023707652102227247183468078279'
                ~ '72180037444908057453025847014502692672079895594422506881593928393168658497167792'
                ~ '30741572508924810546836745923317425619924313502833557777043640356537158950177211'
                ~ '23835228669010614484515888430088023798760656423538855070310010071876805238542496'
                ~ '81470689611528302698418132866521743773863756782274498270858126286554628295130468'
                ~ '85539785282145838592955663045353061926754381577404242034725778560266413310769377'
                ~ '50454196428339894906935679461237686761273771357750186967425625989189428334804212'
                ~ '95889246095019193822426568371474901537604348400183807572229857998642739656510100'
                ~ '87882504685877578305858897613458090674311737178782388117359853593603950385892706'
                ~ '26424092116546027304927098394954356862510294391221788963433747391900195102981811'
                ~ '60847541101531663320910526357638318577160302821980670319985529852041833507593171'
                ~ '30814344298054554414415906609281898535859396029129481517233683503654071083830465'
                ~ '71802639837951288854418391613294757079309498870067321969113884410824644182989539'
                ~ '70453213373862698825692104872012523838401909119198598407153271689450417776877540'
                ~ '21969701922910732501129644466216554975424992918478806882076976091311441830744167'
                ~ '38474084407806163338430688673111059318295475190415891919411829842604876667591418'
                ~ '74943260728189044802396509100750879452160752733174730519790538233599202055671776'
                ~ '22314316823148958948070573780018964826783690275611998450379694718823308438018873'
                ~ '39700583601452305417909664953821581095004791533188395776368821040365774328233410'
                ~ '56528938948929419773761317888340180291403479184759776126240268590166828821934009'
                ~ '20139413260227976761308820719180727708577810679195895227111078618470700020454928'
                ~ '05147993098520637424201087903386302054725029391616873389674982267706306475608524'
                ~ '95899235538591245012265156533233175056341230969376356892098370317000447157015376'
                ~ '88935574802950088452515020347297236652674650670838426192621064426512483892281860'
                ~ '55786716506234710966243723763716165489932851736090915776083208192200076997466215'
                ~ '11267780694488376029409920289043092892705537490600926858740931574922460822857168'
                ~ '27863094139289119772540468271067392293778826115904868965715762768582626680088877'
                ~ '65389125549144089297855007437792005004296204864532464948933518444419151593607975'
                ~ '16660237618824697188211079586230033229964821895468091188954724281459638134684542'
                ~ '44265965640378710362961423225872095078709038328977038395363978864937653316939981'
                ~ '62069748661143085042297965849881282704097398663417048730920581601300484305971962'
                ~ '38502419256665361534505602858485276213241844013432484781070788575515001582717400'
                ~ '75361300813865809247340399612928476332556149116908559456272729922563120126722563'
                ~ '82343615549971442569819308091276120505595858002823343617764334552465391462890599'
                ~ '07581871999271440391382107646366646457592073230986871239112715557744076102814294'
                ~ '05725497333154545699276121364181748674951155786244143323665819959361548139166109'
                ~ '10116338927821076050942596190038328118354584294122410759475166376338080691474617'
                ~ '84574097528597665526862123131208284706204222521543558617466342634267668110798154'
                ~ '29749207975726820036309788612042552829035073711356248209752557836891972977501451'
                ~ '38381414112252378130230830748686634095421470241794993291717424646521224555352976'
                ~ '03483808341065243802258598826848137189559412969090246086540072408889206140038229'
                ~ '00830841625457317065319725193166825838637486749362850819839783816018651430451900'
                ~ '51395152725167570841375215750672847780490704844629562339006148459937653247237887'
                ~ '59509268629738809474109320441047317070448669837868299074637092355127817012602996';

sub test-root(:$precision, :$root, :$number, :$expected) {
    BigRoot.precision = $precision;
    my $result = BigRoot.newton's-root(:$root, :$number);
    my $test-name = "{ $number }^({ $root.numerator }/{ $root.denominator }) - precision { BigRoot.precision }";
    is $result, $expected, $test-name;
}

done-testing;


