package Ġcash . z . ecc . android . bip 3 9 Ċ Ċ import Ġcash . z . ecc . android . bip 3 9 . Mn emon ics . Mnemonic Code Ċ import Ġcash . z . ecc . android . bip 3 9 . Mn emon ics . Word Count Ċ import Ġio . kot est . assertions . as Cl ue Ċ import Ġio . kot est . assertions . throw ables . should Not Throw Any Ċ import Ġio . kot est . core . spec . style . Should Spec Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . kot est . matchers . string . should Contain Ċ Ċ class ĠRead me Examples Test Ġ: ĠShould Spec ({ ĊĠĠĠ Ġval Ġvalid Phrase Ġ= ĊĠĠĠĠĠĠĠ Ġ" still Ġchamp ion Ġvoice Ġhabit Ġtrend Ġflight Ġsurvey Ġbetween Ġbit ter Ġprocess Ġart ef act Ġblind Ġcarbon Ġtruly Ġprovide Ġd iz zy Ġcr ush Ġflush Ġb reeze Ġblo use Ġcharge Ġsolid Ġfish Ġspread " ĊĠĠĠ Ġval Ġvalid Phrase Chars Ġ= Ġvalid Phrase . toCharArray () ĊĠĠĠ Ġcontext (" Example : ĠCreate Ġ 2 4 - word Ġmnemonic Ġphrase ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmnemonic Code Ġ= ĠM n emonic Code ( Word Count . COUNT _ 2 4 ) ĊĠĠĠĠĠĠĠ Ġshould (" result Ġin Ġa Ġvalid Ġ 2 4 - word Ġphrase ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . word Count ĠshouldBe Ġ 2 4 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshould (" result Ġin Ġa Ġvalid Ġphrase "){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Not Throw Any Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . validate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcontext (" Example : ĠGenerate Ġseed ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmnemonic Code Ġ= ĠM n emonic Code ( Word Count . COUNT _ 2 4 ) ĊĠĠĠĠĠĠĠ Ġshould (" result Ġin Ġa Ġvalid Ġ 2 4 - word Ġphrase ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . to Seed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . word Count ĠshouldBe Ġ 2 4 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshould (" result Ġin Ġa Ġvalid Ġphrase "){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Not Throw Any Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . validate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcontext (" Example : ĠGenerate Ġseed Ġfrom Ġexisting Ġmnemonic Ġchars ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmnemonic Code Ġ= ĠM n emonic Code ( valid Phrase . toCharArray ()) ĊĠĠĠĠĠĠĠ Ġshould (" result Ġin Ġa Ġvalid Ġ 2 4 - word Ġphrase ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . to Seed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . word Count ĠshouldBe Ġ 2 4 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshould (" result Ġin Ġa Ġvalid Ġphrase "){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Not Throw Any Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . validate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcontext (" Example : ĠGenerate Ġseed Ġfrom Ġexisting Ġmnemonic Ġstring ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmnemonic Code Ġ= ĠM n emonic Code ( valid Phrase ) ĊĠĠĠĠĠĠĠ Ġshould (" result Ġin Ġa Ġvalid Ġ 2 4 - word Ġphrase ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . to Seed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . word Count ĠshouldBe Ġ 2 4 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshould (" result Ġin Ġa Ġvalid Ġphrase "){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Not Throw Any Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . validate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcontext (" Example : ĠGenerate Ġseed Ġwith Ġpassphrase ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpassphrase Ġ= Ġ" bitcoin ". toCharArray () ĊĠĠĠĠĠĠĠ Ġshould ("' normal Ġway ' Ġresults Ġin Ġa Ġ 6 4 Ġbyte Ġseed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġseed Ġ= ĠM n emonic Code ( valid Phrase ). to Seed ( pass phrase ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġseed . size ĠshouldBe Ġ 6 4 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshould ("' private Ġway ' Ġresults Ġin Ġa Ġ 6 4 Ġbyte Ġseed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġseed : ĠByteArray ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchar ArrayOf (' z ', Ġ' c ', Ġ' a ', Ġ' s ', Ġ' h '). let Ġ{ Ġpassphrase Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġseed Ġ= ĠM n emonic Code ( valid Phrase ). to Seed ( pass phrase ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString ( pass phrase ) ĠshouldBe Ġ" zc ash " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassphrase . fill (' 0 ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString ( pass phrase ) ĠshouldBe Ġ" 0 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġseed . size ĠshouldBe Ġ 6 4 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcontext (" Example : ĠIterate Ġover Ġmnemonic Ġcodes ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmnemonic Code Ġ= ĠM n emonic Code ( valid Phrase ) ĊĠĠĠĠĠĠĠ Ġshould (" work Ġin Ġa Ġfor Ġloop ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( word Ġin Ġmnemonic Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalid Phrase Ġshould Contain Ġword ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount ĠshouldBe Ġ 2 4 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshould (" work Ġwith ĠforEach "){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . forEach Ġ{ Ġword Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalid Phrase Ġshould Contain Ġword ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount ĠshouldBe Ġ 2 4 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcontext (" Example : Ġauto - clear ") Ġ{ ĊĠĠĠĠĠĠĠ Ġshould (" clear Ġthe Ġmnemonic Ġwhen Ġdone ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmnemonic Code Ġ= ĠM n emonic Code ( Word Count . COUNT _ 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . word Count ĠshouldBe Ġ 2 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcontent Ġgets Ġautomatically Ġcleared Ġafter Ġuse ! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . word Count ĠshouldBe Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ