### ----------------------------------------------------
### -- Math::Root
### -- Licenses: Artistic-2.0
### -- Authors: Steve Schulze (thundergnat)
### -- File: t/01-integer.t
### ----------------------------------------------------
### -- Chunk 1 of 2
use Math::Root;
use Test;

plan 75;

my @test5 =
    1,
    2,
    5,
    11,
    25,
    55,
    125,
    279,
    625,
    1397,
    3125,
    6987,
    15625,
    34938,
    78125,
    174692,
    390625,
    873464,
    1953125,
    4367320,
    9765625,
    21836601,
    48828125,
    109183006,
    244140625,
    545915033,
    1220703125,
    2729575167,
    6103515625,
    13647875839,
    30517578125,
    68239379196,
    152587890625,
    341196895980,
    762939453125,
    1705984479904,
    3814697265625,
    8529922399520,
    19073486328125,
    42649611997600,
    95367431640625,
    213248059988001,
    476837158203125,
    1066240299940008,
    2384185791015625,
    5331201499700044,
    11920928955078125,
    26656007498500224,
    59604644775390625,
    133280037492501121,
    298023223876953125,
    666400187462505607,
    1490116119384765625,
    3332000937312528038,
    7450580596923828125,
    16660004686562640193,
    37252902984619140625,
    83300023432813200965,
    186264514923095703125,
    416500117164066004829,
    931322574615478515625,
    2082500585820330024146,
    4656612873077392578125,
    10412502929101650120733
;

for ^64 {
    ok( iroot(5 ** $_) == @test5[$_], 'powers of 5 integer root ok');
}

my @test17 =
68657981879944549861119429004673656300476228151542777368691173920362750962973389367432365032802905001039243892775690633540565771698193228350114566182891249587253759573193011578143557529761658579887480704425583640691728225768501358225343543039632889170575348925208276003398884647653878514250087899281709878169899406362309604057530120545082715704031602234247757690865527581656071536738294530396416374101893384427572028813754341172811665539957140611165956603067329358222920545989222743483565208762627951308679742885942619310540755850072579066354457062529608331414789888027757179246037390140940409450953443145286138608736079929819354233385236952425494290598015559806945665698771858922306698160127691700312387622343635101902080950132527044657875994908885186797129925507859675844441764727371429276980033335259732362352586681124770910557362772046306351310964639043966501204084972215884429306479210259933400323511340676962258721249,
283084111332754775058069432290211046707092556945337898554618719202645078735995345591547441306647033678067714403030159888050150177817815123554613445096652846833138994660879756081634812678725400096552086901371479101351807095904736627836727478651499381405863004954367520836406623216252203256609524485526784865737521393976095095722858388863972115776149819819010372605721406358164085336100725734358930146287670477579494136184396041811484252460006380122784651027043390573074408076454165133066364006005122008051244220917542417755355169787922442898459873492392863462658818564385852249550071323675980584672095925516434713214298490023158864507926798981748721893813062485752412639786262809681302104157053843446530447413934490018583413288049079364906253371418808006295825083818519481459503823232798014979626388253022879426394856985785889248800210224514625048800003887222871157997312803421785401504189028441678877264109770566278306054297,
1167185691959057347639030293079452157108095878576227215267749956646166766370547619246350205557649385017667146177186740770189618118869284881951947625109151242983313912744281196828440478005948195858087171975234921891759379838064523089830840231673759115899780931728540692057781039010115934742251494287789067928888289908159263268978012049266406166968537237982211880744713968888153216124551007016739078359732187535268724489833823799937798314179271390389821262252144599089789649281816786639220608548964675172247555629061024528279192849451233844128025770063003341634051428096471872047182635632395986960666208533469864356348513358806929021967549028191233402940166264516718076316879121601679213868722170758905310589579841796732335376152252959759183891913451048175551208733633614489355510000365314297708660566699415450159993973579121105479475167124787207972286398863747430520469444527670035298210146574418867805499692791508358398261233,
4812429892656831175987180348933587794020573468070744275428518226444966338511920875056306502212999572527151144851512718096852553022902857100428428566643098396163362909234955853387791815538331801641385477323315144722980720630380522673224367137075489483899671084224247854218912594676287455362361916253955342717537863697593616627288592610687525968194546936923176334297263908088789450713712337484101812486890398118851400315134732710795232291820108462087339067459737639742264937299720807262128188102087074136871151755598221101841037886394681529273817849370678678865199915594559488242351212502491669939425630733779390124643074330393700696634755582689728272194822062257791014876366467764582135770669915338591017606036886330315918025896834349203406307314119736107029026424914831184811564994957566254653648600301388950248712568758360117229603573816748625829600066082788809685954317658170351825571213483508540913489866099626731202923062,
19842156763303974909863514982350686670837629935795862659551749262984835028299309527187953494480039545300341485012174593093223508020777842993183109626855571130716336516652780346083488126101119329587481923578993672159909457247096892527124283938453904970296275839385191764982277663171970890618275402892414154791100928438707475572626204837528904838465133045697601972660137471098604674117367119284564332115447188099568316327175004598942571341047613636626961458286458184526424037790885372866750345332399477928208445694037416980746278440670975350176438091071056807778874277640021824802104805750731778331325545068987694057924727099717793373448333479250967849982826496784207297386945067228546635768276902901390280022857310544449701394588300315906126162528667818984370548471771446319043670006210343061047229633890062652719897550845058793151077841121382535528868780683706318847980556970390600069572491765120752693494777455642092770440961,
81811308175166129991782065931870992498349748957202652682284809849564427754702654875957210537620992732961569462475716207646493401389348570707283285632932672734777169456994249507592460864151640627903553114496357460290672250716468885444814241330283321226294408431812213521721514109496886741160152576317240826198143682859091482663906074381687941459307297927693997683053486437509420662133109737229730812277136768020473805357290456083518948960941843855484764146815539875618503934095253723456179197735480260326809579845169758731297644068709585997654903439301537540708398565107511300119970612542358388970235722474249632118932263616692911842790844905725380627311975058382447252898229951997896308101388560756047299302627067615370606440246183936457907224340035513819493449223552130141796604914278626329112026205123612154228113668892121992903260754884726639103201123407409764661223400188895981034710629219645195529327723693654430449692059,
337316664976167573467679754699961673404239708908529665212379737470742195481088261962195209406160672270105805245206968082584799636353223330884112863656544709222177720783097265883419298143719028602987192700842892426718460773200647172961112826953716384495036689269548260004698720273923505140510681849171040631448715783458027084734645482237991382253907261776859233535222337008676279459995241027837593645962602197692661377561975078182023712797809431822658344790869789136949208642445051338734755870650791124779543576798636088672686733491406580952999447548207965732240862719880371021635781697762440231632534266172790798984720360695202487348621669147266453449708050445331524055578066142885292808060707349323634760388574279255644923708001105370404144762987352922734299324020114587423742390105575832037802903776131065096238258364365999483568323299063503103990769271623007420415669468496640201182732360007052795789411216745915577097496337,
139079223897782420986029512084180687247194573227244509559884176744259527182994513289127257913955687646034668086208717552999038782361892570202381585575985543649121188076890224162907183469057789067436040294643807682494142826217997105256184210261481646084700494334080762986926573986144707459972259379739309404536844260860455520528640326448869500480822406477079796061190926943766015125626286553290542380871132505634805469107393775341982213233601134554324099049586417788551456687961931329875504636150316442555576285736788589843205994916806296196013335846812613819204277560682769210203950041322009261249400728206224374602184848148377950132744436339733147066430357599250160