/** Ċ Ġ* ĠCopyright Ġ 2 0 1 6 Ġ- Ġ 2 0 1 8 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġjet brains . rs yn k . rs ync Ċ Ċ import Ġjet brains . rs yn k . rs ync . data . Rol ling Checksum Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ Ċ internal Ġclass ĠRol ling Checksum Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġrolling _ checksum _ test _ 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= Ġbyte ArrayOf ( 0 , Ġ 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 , Ġ 7 , Ġ 8 , Ġ 9 ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 0 8 1 3 4 8 5 , ĠRol ling Checksum . calculate ( bytes , Ġ 0 , Ġ 1 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġrolling _ checksum _ test _ 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= Ġbyte ArrayOf ( 0 , Ġ 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 , Ġ 7 , Ġ 8 , Ġ 9 ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 6 2 2 5 9 5 5 , ĠRol ling Checksum . calculate ( bytes , Ġ 5 , Ġ 5 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġrolling _ checksum _ test _ 3 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= Ġbyte ArrayOf ( 0 , Ġ 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 , Ġ 7 , Ġ 8 , Ġ 9 ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 4 5 8 7 5 7 , ĠRol ling Checksum . calculate ( bytes , Ġ 2 , Ġ 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġrolling _ checksum _ test _ 4 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlen Ġ= Ġ 1 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= ĠByteArray ( len ) ĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 0 .. len Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytes [ i ] Ġ= Ġ( i Ġ* Ġ 2 ). to Byte () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 3 9 5 1 6 4 0 0 , ĠRol ling Checksum . calculate ( bytes , Ġ 0 , Ġlen )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġroll _ forward _ test _ 1 () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (- 4 9 9 7 8 5 1 6 4 , ĠRol ling Checksum . roll Forward ( 1 2 3 3 2 1 , Ġ 1 2 3 . to Byte ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġroll _ forward _ test _ 2 () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (- 7 3 7 2 9 1 2 4 0 , ĠRol ling Checksum . roll Forward (- 6 6 6 6 6 6 , Ġ 6 6 . to Byte ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġroll _ forward _ test _ 3 () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 0 5 5 1 4 5 7 , ĠRol ling Checksum . roll Forward ( 7 Ġ* Ġ 6 Ġ+ Ġ 4 2 , Ġ 7 7 . to Byte ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġroll _ back _ test _ 1 () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (- 1 7 0 2 9 3 1 1 3 , ĠRol ling Checksum . roll Back ( 1 0 0 5 0 0 , Ġ 2 0 0 , Ġ 1 3 . to Byte ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġroll _ back _ test _ 2 () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (- 1 1 5 6 0 3 7 8 2 , ĠRol ling Checksum . roll Back ( 4 2 Ġ* Ġ 4 2 , Ġ 4 2 , Ġ 4 2 . to Byte ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġroll _ back _ test _ 3 () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 7 0 7 2 8 5 9 6 4 , ĠRol ling Checksum . roll Back (- 1 2 3 3 2 1 , Ġ 3 2 1 , Ġ 1 2 3 . to Byte ())) ĊĠĠĠ Ġ} Ċ } Ċ