package Ġme . sh ks ch ne ider . blockchain Ċ Ċ import Ġme . sh ks ch ne ider . consensus . Consensus Ċ import Ġorg . junit . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠDiff iculty Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` genesis Ġdifficulty `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( blk ( 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Consensus . genesis . difficulty , Ġdifficulty ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` difficulty Ġafter Ġ 1 Ġhaving `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( blk ( Consensus . Rules . hal ving )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġdifficulty Ġ> ĠCons ensus . genesis . difficulty Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Consensus . Rules . difficulty ( height ), Ġdifficulty ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith ( blk ( Consensus . Rules . hal ving Ġ+ Ġ 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġdifficulty Ġ> ĠCons ensus . genesis . difficulty Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Consensus . Rules . difficulty ( height ), Ġdifficulty ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` difficulty Ġafter Ġ 1 0 Ġhaving `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( blk ( Consensus . Rules . hal ving Ġ* Ġ 1 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġdifficulty Ġ> ĠCons ensus . genesis . difficulty Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Consensus . Rules . difficulty ( height ), Ġdifficulty ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ