package Ġjp . co . sor am its u . fe ar less _ utils . encrypt Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġjp . co . sor am its u . fe ar less _ utils . encrypt . key pair . substr ate . Sub strate Key pair Factory Ċ import Ġjp . co . sor am its u . fe ar less _ utils . extensions . to HexString Ċ import Ġjp . co . sor am its u . fe ar less _ utils . getResource Reader Ċ import Ġjp . co . sor am its u . fe ar less _ utils . encrypt . junction . Sub strate J unction Decoder Ċ import Ġjp . co . sor am its u . fe ar less _ utils . encrypt . mn emonic . Mnemonic TestCase Ċ import Ġjp . co . sor am its u . fe ar less _ utils . encrypt . seed . substr ate . Sub strate Seed Factory Ċ import Ġorg . junit . Assert Ċ Ċ abstract Ġclass ĠSub strate Key pair Der ivation Test Ġ{ ĊĊĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĊĠĠĠ Ġprotected Ġfun Ġperform Spec Tests ( ĊĠĠĠĠĠĠĠ Ġfilename : ĠString , ĊĠĠĠĠĠĠĠ Ġencryption Type : ĠEncryption Type ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Cases Ġ= Ġgson . fromJson ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetResource Reader ( filename ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArray < Mnemonic TestCase >:: class . java ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġtest Cases . forEach Ġ{ ĠtestCase Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġder ivation Path Raw Ġ= ĠtestCase . path . if Empty Ġ{ Ġnull Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġder ivation Path Ġ= Ġder ivation Path Raw ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĠSub strate J unction Decoder . decode ( testCase . path ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠSub strate Seed Factory . derive Seed ( testCase . mn emonic , Ġder ivation Path ?. password ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġseed 3 2 Ġ= Ġresult . seed . copyOf ( new Size Ġ= Ġ 3 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Key pair Ġ= ĠSub strate Key pair Factory . generate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġseed Ġ= Ġseed 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj unction s Ġ= Ġder ivation Path ?. junction s . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencryption Type Ġ= Ġencryption Type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Mnemonic =${ testCase . mn emonic }, Ġder ivation Path =${ testCase . path }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtestCase . expected PublicKey , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactual Key pair . publicKey . to HexString ( with Prefix Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ