package Ġcom . no hr d . bi ke . sdk . internal . protocol Ċ Ċ import Ġcom . n ha ar man . expect . expect Ċ import Ġcom . no hr d . bi ke . sdk . internal . protocol . Value Calculator . calculate Value Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠValue Calculator Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġhigh Byte : ĠByte Ġ= Ġ 0 b 0 0 0 1 _ 0 0 0 1 Ġ// Ġ 4 0 9 7 ĊĠĠĠ Ġprivate Ġval Ġlow Byte : ĠByte Ġ= Ġ 0 b 0 1 0 1 _ 0 1 0 1 Ġ// Ġ 8 5 ĊĊĠĠĠ Ġprivate Ġfun Ġvalue Of ( high Byte : ĠByte , Ġlow Byte : ĠByte ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( high Byte . toInt () Ġshl Ġ 8 ) Ġ+ Ġlow Byte ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` valueOf Ġfunction Ġproperly Ġcalculates Ġvalue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠGiven Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġhigh Byte : ĠByte Ġ= Ġ 0 b 0 0 0 0 _ 0 0 0 1 Ġ// Ġ 2 5 6 ĊĠĠĠĠĠĠĠ Ġval Ġlow Byte : ĠByte Ġ= Ġ 0 b 0 0 0 0 _ 1 0 0 0 Ġ// Ġ 8 ĊĊĠĠĠĠĠĠĠ Ġ/* ĠWhen Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġvalue Of ( high Byte , Ġlow Byte ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠThen Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect ( result ). toBe ( 2 5 6 Ġ+ Ġ 8 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` all Ġzero Ġflags Ġuses Ġboth Ġvalue Ġbytes `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠWhen Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcalculate Value ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġ 0 b 0 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhigh Byte Ġ= Ġhigh Byte , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlow Byte Ġ= Ġlow Byte , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠThen Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect ( result ). toBe ( valueOf ( high Byte Ġ= Ġhigh Byte , Ġlow Byte Ġ= Ġlow Byte )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` 0 0 0 1 Ġsets Ġhigh Ġbyte Ġto Ġ 1 0 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠWhen Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcalculate Value ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġ 0 b 0 0 0 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhigh Byte Ġ= Ġhigh Byte , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlow Byte Ġ= Ġlow Byte , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠThen Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect ( result ). toBe ( valueOf ( 1 0 , Ġlow Byte )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` 0 0 1 0 Ġsets Ġhigh Ġbyte Ġto Ġ 1 3 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠWhen Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcalculate Value ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġ 0 b 0 0 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhigh Byte Ġ= Ġhigh Byte , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlow Byte Ġ= Ġlow Byte , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠThen Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect ( result ). toBe ( valueOf ( 1 3 , Ġlow Byte )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` 0 0 1 1 Ġsets Ġlow Ġbyte Ġto Ġ 1 0 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠWhen Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcalculate Value ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġ 0 b 0 0 1 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhigh Byte Ġ= Ġhigh Byte , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlow Byte Ġ= Ġlow Byte , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠThen Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect ( result ). toBe ( valueOf ( high Byte , Ġ 1 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` 0 1 0 0 Ġsets Ġlow Ġbyte Ġto Ġ 1 3 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠWhen Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcalculate Value ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġ 0 b 0 1 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhigh Byte Ġ= Ġhigh Byte , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlow Byte Ġ= Ġlow Byte , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠThen Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect ( result ). toBe ( valueOf ( high Byte , Ġ 1 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` 0 1 0 1 Ġsets Ġhigh Ġbyte Ġto Ġ 1 0 , Ġlow Ġbyte Ġto Ġ 1 0 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠWhen Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcalculate Value ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġ 0 b 0 1 0 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhigh Byte Ġ= Ġhigh Byte , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlow Byte Ġ= Ġlow Byte , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠThen Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect ( result ). toBe ( valueOf ( 1 0 , Ġ 1 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` 0 1 1 1 Ġsets Ġhigh Ġbyte Ġto Ġ 1 0 , Ġlow Ġbyte Ġto Ġ 1 3 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠWhen Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcalculate Value ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġ 0 b 0 1 1 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhigh Byte Ġ= Ġhigh Byte , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlow Byte Ġ= Ġlow Byte , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠThen Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect ( result ). toBe ( valueOf ( 1 0 , Ġ 1 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` 1 0 0 0 Ġsets Ġhigh Ġbyte Ġto Ġ 1 3 , Ġlow Ġbyte Ġto Ġ 1 0 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠWhen Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcalculate Value ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġ 0 b 1 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhigh Byte Ġ= Ġhigh Byte , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlow Byte Ġ= Ġlow Byte , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠThen Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect ( result ). toBe ( valueOf ( 1 3 , Ġ 1 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` 1 0 0 1 Ġsets Ġhigh Ġbyte Ġto Ġ 1 3 , Ġlow Ġbyte Ġto Ġ 1 3 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠWhen Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcalculate Value ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġ 0 b 1 0 0 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhigh Byte Ġ= Ġhigh Byte , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlow Byte Ġ= Ġlow Byte , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠThen Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect ( result ). toBe ( valueOf ( 1 3 , Ġ 1 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` only Ġthe Ġlast Ġ 4 Ġflag Ġbits Ġare Ġused `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠWhen Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcalculate Value ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġ 0 b 1 1 _ 1 0 0 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhigh Byte Ġ= Ġhigh Byte , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlow Byte Ġ= Ġlow Byte , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠThen Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect ( result ). toBe ( valueOf ( 1 3 , Ġ 1 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` negative Ġbinary Ġvalues Ġresult Ġin Ġpositive Ġint Ġvalues `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠWhen Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcalculate Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 b 0 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 6 3 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠThen Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect ( result ). toBe ( 1 9 3 ) ĊĠĠĠ Ġ} Ċ } Ċ