/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "). Ċ Ġ* ĠYou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠA Ġcopy Ġof Ġthe ĠLicense Ġis Ġlocated Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġor Ġin Ġthe Ġ" license " Ġfile Ġaccompanying Ġthis Ġfile . ĠThis Ġfile Ġis Ġdistributed Ċ Ġ* Ġon Ġan Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ċ Ġ* Ġexpress Ġor Ġimplied . ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ċ Ġ* Ġpermissions Ġand Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . amazon . ion h ives erde . object inspect ors Ċ Ċ import Ġcom . amazon . ion . Ion Int Ċ import Ġcom . amazon . ion h ives erde . ION Ċ import Ġjunit params . Parameters Ċ import Ġorg . apache . hadoop . io . Long Writable Ċ import Ġorg . junit . Test Ċ import Ġjava . math . BigInteger Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠIon Int To BigInt Object Inspector Test ĊĠĠĠ Ġ: ĠAbstract Overflow able Primitive Object Inspector Test < Ion Int , ĠLong Writable , ĠLong >() Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġsubject Overflow Ġ= Ġcom . amazon . ion h ives erde . object inspect ors . Ion Int To BigInt Object Inspector ( false ) ĊĠĠĠ Ġoverride Ġfun Ġoverflow TestCase s () Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOverflow TestCase ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠI ON . new Int ( BigInteger . valueOf ( com . amazon . ion h ives erde . object inspect ors . Ion Int To BigInt Object Inspector . MAX _ VALUE ). inc ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcom . amazon . ion h ives erde . object inspect ors . Ion Int To BigInt Object Inspector . MIN _ VALUE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLong Writable ( com . amazon . ion h ives erde . object inspect ors . Ion Int To BigInt Object Inspector . MIN _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġval Ġsubject Ġ= Ġcom . amazon . ion h ives erde . object inspect ors . Ion Int To BigInt Object Inspector ( true ) ĊĠĠĠ Ġoverride Ġfun Ġvalid TestCase s () Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcom . amazon . ion h ives erde . object inspect ors . Ion Int To BigInt Object Inspector . MIN _ VALUE , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcom . amazon . ion h ives erde . object inspect ors . Ion Int To BigInt Object Inspector . MAX _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Valid TestCase ( ION . new Int ( it ), Ġit , ĠLong Writable ( it ))} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Parameters ( method Ġ= Ġ" valid TestCase s ") ĊĠĠĠ Ġfun Ġget ( testCase : ĠValid TestCase < Ion Int , ĠLong Writable , ĠLong >) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( testCase . expected Primitive , Ġsubject . get ( testCase . ion Value )) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġ@ Parameters ( method Ġ= Ġ" overflow TestCase s ") ĊĠĠĠ Ġfun Ġget Overflow ( testCase : ĠOverflow TestCase < Ion Int , ĠLong Writable , ĠLong >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsubject . get ( testCase . ion Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Parameters ( method Ġ= Ġ" overflow TestCase s ") ĊĠĠĠ Ġfun Ġget Overflow Without Fail On Overflow ( testCase : ĠOverflow TestCase < Ion Int , ĠLong Writable , ĠLong >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġsubject Overflow . get ( testCase . ion Value ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( testCase . expected Primitive , Ġactual ) ĊĠĠĠ Ġ} Ċ } Ċ