// ĠVer i Block ĠBlock chain ĠProject Ċ // ĠCopyright Ġ 2 0 1 7 - 2 0 1 8 ĠVer i Block , ĠInc Ċ // ĠCopyright Ġ 2 0 1 8 - 2 0 2 1 ĠX en ios ĠSE ZC Ċ // ĠAll Ġrights Ġreserved . Ċ // Ġhttps :// www . ver ib lock . org Ċ // ĠDistributed Ġunder Ġthe ĠMIT Ġsoftware Ġlicense , Ġsee Ġthe Ġaccompanying Ċ // Ġfile ĠLICENSE Ġor Ġhttp :// www . opensource . org / licenses / mit - license . php . Ċ package Ġorg . ver ib lock . sdk . util Ċ Ċ import Ġio . kot est . matchers . collections . should Contain Exactly Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġorg . junit . Test Ċ import Ġorg . ver ib lock . core . utilities . Utility Ċ import Ġjava . math . BigInteger Ċ import Ġjava . util .* Ċ Ċ class ĠUtility Tests Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġto Bytes _ When LessThan Size () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= ĠBigInteger . valueOf ( 9 9 9 9 8 9 1 8 2 4 6 4 L ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠUtility . to Bytes ( value , Ġ 1 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġbyte ArrayOf ( 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ- 2 4 , Ġ- 4 4 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult . toList () Ġshould Contain Exactly Ġexpected . toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġverify Signature _ When Valid () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠUtility . hex ToBytes (" 0 1 2 3 4 5 6 7 8 9 ABCDEF ") ĊĠĠĠĠĠĠĠ Ġval ĠpublicKey Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtility . hex ToBytes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 3 0 5 6 3 0 1 0 0 6 0 7 2 A 8 6 4 8 CE 3 D 0 2 0 1 0 6 0 5 2 B 8 1 0 4 0 0 0 A 0 3 4 2 0 0 0 4 CB 4 2 7 E 4 1 A 0 1 1 4 8 7 4 0 8 0 A 4 B 1 E 2 AB 7 9 2 0 E 2 2 CD 2 D 1 8 8 C 8 7 1 4 0 DE FA 4 4 7 EE 5 FC 4 4 BB 8 4 8 E 1 C 0 DB 5 EF 2 0 6 DE 2 E 7 0 0 2 F 6 C 8 6 9 5 2 BE 4 8 2 3 A 4 C 0 8 E 6 5 E 4 C DB EB 9 0 4 A 8 B 9 5 7 6 3 AA " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsignature Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtility . hex ToBytes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 3 0 4 4 0 2 2 0 2 F 2 B 1 3 6 EB 2 2 ED DAC A 3 E 9 EA 9 C 4 3 A 0 6 4 7 8 FF 0 9 5 1 0 8 A 1 9 F 4 3 3 C 3 5 8 CE 2 C 8 4 4 6 1 DE 8 0 0 2 2 0 6 1 7 E 5 4 A 3 F BC 8 B 6 1 B 2 2 D 2 9 7 7 2 D 5 8 B 2 7 F 4 7 3 9 5 9 1 5 5 1 5 F 0 4 0 E 1 7 0 BB 5 0 D 9 5 1 6 4 6 C 5 7 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠUtility . verify Signature ( message , Ġsignature , ĠpublicKey ) ĠshouldBe Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġto Int () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhex Ġ= ĠUtility . hex ToBytes (" 2 4 5 0 9 D 4 1 F 5 4 8 C 0 ") ĊĠĠĠĠĠĠĠ Ġval Ġbit Set Ġ= ĠBit Set . valueOf ( Utility . flip ( hex )) ĊĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= Ġ 6 ĊĠĠĠĠĠĠĠ ĠUtility . toInt ( bit Set [ offset , Ġoffset Ġ+ Ġ 8 ]). to Long () ĠshouldBe Ġ 3 5 ĊĠĠĠĠĠĠĠ ĠUtility . toInt ( bit Set [ offset Ġ+ Ġ 8 , Ġoffset Ġ+ Ġ 1 4 ]). to Long () ĠshouldBe Ġ 2 1 ĊĠĠĠĠĠĠĠ ĠUtility . toInt ( bit Set [ offset Ġ+ Ġ 1 4 , Ġoffset Ġ+ Ġ 2 2 ]). to Long () ĠshouldBe Ġ 3 1 ĊĠĠĠĠĠĠĠ ĠUtility . toInt ( bit Set [ offset Ġ+ Ġ 2 2 , Ġoffset Ġ+ Ġ 2 8 ]). to Long () ĠshouldBe Ġ 2 0 ĊĠĠĠĠĠĠĠ ĠUtility . toInt ( bit Set [ offset Ġ+ Ġ 2 8 , Ġoffset Ġ+ Ġ 3 6 ]). to Long () ĠshouldBe Ġ 3 9 ĊĠĠĠĠĠĠĠ ĠUtility . toInt ( bit Set [ offset Ġ+ Ġ 3 6 , Ġoffset Ġ+ Ġ 4 2 ]). to Long () ĠshouldBe Ġ 2 0 ĊĠĠĠĠĠĠĠ ĠUtility . toInt ( bit Set [ offset Ġ+ Ġ 4 2 , Ġbit Set . length ()] ). to Long () ĠshouldBe Ġ 3 6 ĊĠĠĠ Ġ} Ċ } Ċ