package Ġcom . bk ahl ert . kom mon s . unit Ċ Ċ import Ġcom . bk ahl ert . kom mon s . io . path . getSize Ċ import Ġcom . bk ahl ert . kom mon s . io . path . random File Ċ import Ġcom . bk ahl ert . kom mon s . test . expect Throws Ċ import Ġcom . bk ahl ert . kom mon s . test . junit . UniqueId Ċ import Ġcom . bk ahl ert . kom mon s . test . test Each Ċ import Ġcom . bk ahl ert . kom mon s . test . with TempDir Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . Test Factory Ċ import Ġstri kt . api . Assertion Ċ import Ġstri kt . api . expect That Ċ import Ġstri kt . assertions . isEqualTo Ċ import Ġjava . math . BigInteger Ċ import Ġjava . nio . file . Path Ċ import Ġkotlin . io . path . append Text Ċ Ċ class ĠSize Test Ġ{ ĊĊĠĠĠ Ġ@ Test Factory ĊĠĠĠ Ġfun Ġ` should Ġreturn Ġwhole Ġbytes `() Ġ= Ġtest Each ( 2 . bytes , Ġ 1 . 1 . bytes ) Ġ{ Ġsize Ġ-> ĊĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġsize . whole Bytes Ġ} Ġthat Ġ{ Ġis EqualTo ( BigInteger . TWO ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġuse Ġdecimal Ġunit Ġby Ġdefault `() Ġ{ ĊĠĠĠĠĠĠĠ Ġexpect That ( 4 2 . Me ga . bytes . toString ()). isEqualTo (" 4 2 ĠMB ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Factory ĊĠĠĠ Ġfun Ġ` max Ġlength Ġof Ġrepresentation Ġto Ġbase `() Ġ= Ġtest Each ( ĊĠĠĠĠĠĠĠĠ 1 . bytes Ġto ĠlistOf ( 2 Ġto Ġ 8 , Ġ 8 Ġto Ġ 3 , Ġ 1 0 Ġto Ġ 3 , Ġ 1 6 Ġto Ġ 2 , Ġ 3 2 Ġto Ġ 2 ), ĊĠĠĠĠĠĠĠĠ 2 . bytes Ġto ĠlistOf ( 2 Ġto Ġ 1 6 , Ġ 8 Ġto Ġ 6 , Ġ 1 0 Ġto Ġ 5 , Ġ 1 6 Ġto Ġ 4 , Ġ 3 2 Ġto Ġ 4 ), ĊĠĠĠĠĠĠĠĠ 4 . bytes Ġto ĠlistOf ( 2 Ġto Ġ 3 2 , Ġ 8 Ġto Ġ 1 1 , Ġ 1 0 Ġto Ġ 1 0 , Ġ 1 6 Ġto Ġ 8 , Ġ 3 2 Ġto Ġ 7 ), ĊĠĠĠ Ġ) Ġ{ Ġ( num Bytes , Ġexpected MaxLength s ) Ġ-> ĊĠĠĠĠĠĠĠ Ġexpected MaxLength s . forEach Ġ{ Ġ( base , Ġexpected MaxLength ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting (" max Ġlength Ġof Ġnumber Ġencoded Ġwith Ġ$ num Bytes Ġrepresented Ġas Ġstring Ġto Ġthe Ġbase Ġ$ base ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġnum Bytes . maxLength Of Representation To Base Of ( base ) Ġ} Ġthat Ġ{ Ġis EqualTo ( expected MaxLength ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠWith Binary Prefix Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test Factory ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġformat Ġinteger Ġbinary Ġform `() Ġ= Ġtest Each ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 _ 2 0 0 _ 0 0 0 . Y obi . bytes Ġto Ġ" 4 . 2 0 e + 6 ĠY iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Y obi . bytes Ġto Ġ" 4 2 ĠY iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Z eb i . bytes Ġto Ġ" 4 2 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Ex bi . bytes Ġto Ġ" 4 2 ĠE iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . P eb i . bytes Ġto Ġ" 4 2 ĠP iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . T eb i . bytes Ġto Ġ" 4 2 ĠT iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . G ib i . bytes Ġto Ġ" 4 2 ĠG iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . M eb i . bytes Ġto Ġ" 4 2 ĠM iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . K ib i . bytes Ġto Ġ" 4 2 ĠK iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . bytes Ġto Ġ" 4 2 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . m ib i . bytes Ġto Ġ" 4 2 Ġmi B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . m ubi . bytes Ġto Ġ" 4 2 Ġui B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . n abi . bytes Ġto Ġ" 4 2 Ġn iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . p ib i . bytes Ġto Ġ" 4 2 Ġpi B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . f em bi . bytes Ġto Ġ" 4 2 Ġfi B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . abi . bytes Ġto Ġ" 4 2 Ġa iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . z eb i . bytes Ġto Ġ" 4 2 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . y obi . bytes Ġto Ġ" 4 2 ĠY iB ", ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ( size : ĠSize , Ġexpected : ĠString ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġsize . toString ( Binary Prefixes ) Ġ} Ġthat Ġ{ Ġis EqualTo ( expected ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġ(- size ). toString ( Binary Prefixes ) Ġ} Ġthat Ġ{ Ġis EqualTo ("- $ expected ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test Factory ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġformat Ġfraction Ġbinary Ġform `() Ġ= Ġtest Each ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 _ 2 0 0 _ 0 0 0 . G ib i . bytes Ġto Ġ" 4 . 0 1 ĠP iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 _ 2 0 0 . G ib i . bytes Ġto Ġ" 4 . 1 ĠT iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 0 . G ib i . bytes Ġto Ġ" 4 2 0 ĠG iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . G ib i . bytes Ġto Ġ" 4 2 ĠG iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 . 2 . G ib i . bytes Ġto Ġ" 4 . 2 ĠG iB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 4 2 . G ib i . bytes Ġto Ġ" 4 3 0 ĠM iB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 4 2 . G ib i . bytes Ġto Ġ" 4 3 ĠM iB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 4 2 . G ib i . bytes Ġto Ġ" 4 . 3 ĠM iB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 4 2 . G ib i . bytes Ġto Ġ" 4 4 0 ĠK iB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 4 2 . G ib i . bytes Ġto Ġ" 4 4 ĠK iB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 4 2 . G ib i . bytes Ġto Ġ" 4 . 4 ĠK iB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 4 2 . G ib i . bytes Ġto Ġ" 4 5 1 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 0 4 2 . G ib i . bytes Ġto Ġ" 4 5 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 0 0 4 2 . G ib i . bytes Ġto Ġ" 5 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 0 0 0 4 2 . G ib i . bytes Ġto Ġ" 4 6 2 Ġmi B ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 0 0 0 0 4 2 . G ib i . bytes Ġto Ġ" 4 6 . 2 Ġmi B ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 0 0 0 0 0 4 2 . G ib i . bytes Ġto Ġ" 4 . 6 2 Ġmi B ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 0 0 0 0 0 0 4 2 . G ib i . bytes Ġto Ġ" 4 7 3 Ġui B ", ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ( size : ĠSize , Ġexpected : ĠString ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġsize . toString ( Binary Prefixes ) Ġ} Ġthat Ġ{ Ġis EqualTo ( expected ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġ(- size ). toString ( Binary Prefixes ) Ġ} Ġthat Ġ{ Ġis EqualTo ("- $ expected ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test Factory ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġformat Ġ 0 Ġbinary Ġform `() Ġ= Ġtest Each ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . Y obi . bytes Ġto Ġ" 0 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . K ib i . bytes Ġto Ġ" 0 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . bytes Ġto Ġ" 0 ĠB ", ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ( size : ĠSize , Ġexpected : ĠString ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġsize . toString ( Binary Prefixes ) Ġ} Ġthat Ġ{ Ġis EqualTo ( expected ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test Factory ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġformat Ġto Ġspecific Ġunit `() Ġ= Ġtest Each ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 _ 2 0 0 _ 0 0 0 . Y obi . bytes Ġto Ġ" 5 . 9 9 e + 5 1 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Y obi . bytes Ġto Ġ" 5 . 9 9 e + 4 6 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Z eb i . bytes Ġto Ġ" 5 . 8 5 e + 4 3 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Ex bi . bytes Ġto Ġ" 5 . 7 2 e + 4 0 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . P eb i . bytes Ġto Ġ" 5 . 5 8 e + 3 7 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . T eb i . bytes Ġto Ġ" 5 . 4 5 e + 3 4 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . G ib i . bytes Ġto Ġ" 5 . 3 2 e + 3 1 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . M eb i . bytes Ġto Ġ" 5 . 2 0 e + 2 8 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . K ib i . bytes Ġto Ġ" 5 . 0 8 e + 2 5 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . bytes Ġto Ġ" 4 . 9 6 e + 2 2 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . m ib i . bytes Ġto Ġ" 4 . 8 4 e + 1 9 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . m ubi . bytes Ġto Ġ" 4 . 7 3 e + 1 6 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . n abi . bytes Ġto Ġ" 4 6 1 7 9 4 8 8 3 6 5 8 2 4 . 5 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . p ib i . bytes Ġto Ġ" 4 5 0 9 7 1 5 6 6 0 7 . 9 9 8 6 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . f em bi . bytes Ġto Ġ" 4 4 0 4 0 1 9 2 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . abi . bytes Ġto Ġ" 4 3 0 0 8 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . z eb i . bytes Ġto Ġ" 4 2 ĠZ iB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . y obi . bytes Ġto Ġ" 0 . 0 4 1 ĠZ iB ", ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ( size : ĠSize , Ġexpected : ĠString ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġsize . toString ( Binary Prefixes . z eb i , Ġ 4 ) Ġ} Ġthat Ġ{ Ġis EqualTo ( expected ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠWith Decimal Prefix Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test Factory ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġformat Ġinteger Ġdecimal Ġform `() Ġ= Ġtest Each ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 _ 2 0 0 _ 0 0 0 . Y ot ta . bytes Ġto Ġ" 4 . 2 0 e + 6 ĠY B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Y ot ta . bytes Ġto Ġ" 4 2 ĠY B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Z et ta . bytes Ġto Ġ" 4 2 ĠZ B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Ex a . bytes Ġto Ġ" 4 2 ĠEB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . P eta . bytes Ġto Ġ" 4 2 ĠPB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . T era . bytes Ġto Ġ" 4 2 ĠTB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . G iga . bytes Ġto Ġ" 4 2 ĠGB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Me ga . bytes Ġto Ġ" 4 2 ĠMB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . ki lo . bytes Ġto Ġ" 4 2 ĠKB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . he cto . bytes Ġto Ġ" 4 . 2 ĠKB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . de ca . bytes Ġto Ġ" 4 2 0 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . bytes Ġto Ġ" 4 2 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . de ci . bytes Ġto Ġ" 4 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . cent i . bytes Ġto Ġ" 4 2 0 Ġm B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . milli . bytes Ġto Ġ" 4 2 Ġm B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . micro . bytes Ġto Ġ" 4 2 ĠÎ¼ B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . nano . bytes Ġto Ġ" 4 2 Ġn B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . p ico . bytes Ġto Ġ" 4 2 Ġp B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . f em to . bytes Ġto Ġ" 4 2 Ġf B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . at to . bytes Ġto Ġ" 4 2 Ġa B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . ze pto . bytes Ġto Ġ" 4 2 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . yo cto . bytes Ġto Ġ" 4 2 Ġy B ", ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ( size : ĠSize , Ġexpected : ĠString ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġsize . toString ( Decimal Prefixes ) Ġ} Ġthat Ġ{ Ġis EqualTo ( expected ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġ(- size ). toString ( Decimal Prefixes ) Ġ} Ġthat Ġ{ Ġis EqualTo ("- $ expected ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test Factory ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġformat Ġfraction Ġdecimal Ġform `() Ġ= Ġtest Each ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 _ 2 0 0 . G iga . bytes Ġto Ġ" 4 . 2 ĠTB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 0 . G iga . bytes Ġto Ġ" 4 2 0 ĠGB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . G iga . bytes Ġto Ġ" 4 2 ĠGB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 . 2 . G iga . bytes Ġto Ġ" 4 . 2 ĠGB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 4 2 . G iga . bytes Ġto Ġ" 4 2 0 ĠMB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 4 2 . G iga . bytes Ġto Ġ" 4 2 ĠMB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 4 2 . G iga . bytes Ġto Ġ" 4 . 2 ĠMB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 4 2 . G iga . bytes Ġto Ġ" 4 2 0 ĠKB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 4 2 . G iga . bytes Ġto Ġ" 4 2 ĠKB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 4 2 . G iga . bytes Ġto Ġ" 4 . 2 ĠKB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 4 2 . G iga . bytes Ġto Ġ" 4 2 0 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 0 4 2 . G iga . bytes Ġto Ġ" 4 2 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 0 0 4 2 . G iga . bytes Ġto Ġ" 4 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 0 0 0 4 2 . G iga . bytes Ġto Ġ" 4 2 0 Ġm B ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 0 0 0 0 4 2 . G iga . bytes Ġto Ġ" 4 2 Ġm B ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 0 0 0 0 0 4 2 . G iga . bytes Ġto Ġ" 4 . 2 Ġm B ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. 0 0 0 0 0 0 0 0 0 0 0 0 4 2 . G iga . bytes Ġto Ġ" 4 2 0 ĠÎ¼ B ", ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ( size : ĠSize , Ġexpected : ĠString ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġsize . toString ( Decimal Prefixes ) Ġ} Ġthat Ġ{ Ġis EqualTo ( expected ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġ(- size ). toString ( Decimal Prefixes ) Ġ} Ġthat Ġ{ Ġis EqualTo ("- $ expected ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test Factory ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġformat Ġ 0 Ġdecimal Ġform `() Ġ= Ġtest Each ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . Y ot ta . bytes Ġto Ġ" 0 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . ki lo . bytes Ġto Ġ" 0 ĠB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . bytes Ġto Ġ" 0 ĠB ", ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ( size : ĠSize , Ġexpected : ĠString ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġ"$ size " Ġ} Ġthat Ġ{ Ġis EqualTo ( expected ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test Factory ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġformat Ġto Ġspecific Ġunit `() Ġ= Ġtest Each ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 _ 2 0 0 _ 0 0 0 . Y ot ta . bytes Ġto Ġ" 4 . 2 0 e + 5 1 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Y ot ta . bytes Ġto Ġ" 4 . 2 0 e + 4 6 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Z et ta . bytes Ġto Ġ" 4 . 2 0 e + 4 3 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Ex a . bytes Ġto Ġ" 4 . 2 0 e + 4 0 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . P eta . bytes Ġto Ġ" 4 . 2 0 e + 3 7 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . T era . bytes Ġto Ġ" 4 . 2 0 e + 3 4 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . G iga . bytes Ġto Ġ" 4 . 2 0 e + 3 1 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . Me ga . bytes Ġto Ġ" 4 . 2 0 e + 2 8 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . ki lo . bytes Ġto Ġ" 4 . 2 0 e + 2 5 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . he cto . bytes Ġto Ġ" 4 . 2 0 e + 2 4 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . de ca . bytes Ġto Ġ" 4 . 2 0 e + 2 3 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . bytes Ġto Ġ" 4 . 2 0 e + 2 2 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . de ci . bytes Ġto Ġ" 4 . 2 0 e + 2 1 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . cent i . bytes Ġto Ġ" 4 . 2 0 e + 2 0 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . milli . bytes Ġto Ġ" 4 . 2 0 e + 1 9 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . micro . bytes Ġto Ġ" 4 . 2 0 e + 1 6 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . nano . bytes Ġto Ġ" 4 2 0 0 0 0 0 0 0 0 0 0 0 0 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . p ico . bytes Ġto Ġ" 4 2 0 0 0 0 0 0 0 0 0 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . f em to . bytes Ġto Ġ" 4 2 0 0 0 0 0 0 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . at to . bytes Ġto Ġ" 4 2 0 0 0 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . ze pto . bytes Ġto Ġ" 4 2 Ġz B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 . yo cto . bytes Ġto Ġ" 0 . 0 4 2 Ġz B ", ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ( size : ĠSize , Ġexpected : ĠString ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpecting Ġ{ Ġsize . toString ( Decimal Prefixes . ze pto , Ġ 4 ) Ġ} Ġthat Ġ{ Ġis EqualTo ( expected ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠAs Size Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠPath . create File (): ĠPath Ġ= Ġrandom File (). apply Ġ{ Ġrepeat ( 2 5 0 0 ) Ġ{ Ġappend Text (" 1 2 3 4 5 6 7 8 9 0 ") Ġ} Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġformat Ġsize Ġhuman - readable Ġ( 1 0 ^ x )` ( unique Id : ĠUnique Id ) Ġ= Ġwith TempDir ( unique Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( create File (). getSize (). toString ( Decimal Prefixes )). isEqualTo (" 2 5 ĠKB ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġformat Ġsize Ġhuman - readable Ġ( 2 ^ y )` ( unique Id : ĠUnique Id ) Ġ= Ġwith TempDir ( unique Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( create File (). getSize (). toString ( Binary Prefixes )). isEqualTo (" 2 4 . 4 ĠK iB ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠParsing Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠWith Binary Prefix Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġinteger Ġwith Ġno Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 G iB ". to Size ()). isEqualTo ( 2 . G ib i . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġinteger Ġwith Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 ĠG iB ". to Size ()). isEqualTo ( 2 . G ib i . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġfraction al Ġwith Ġno Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 . 5 0 5 G iB ". to Size ()). isEqualTo ( 2 . 5 0 5 . G ib i . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġfraction al Ġwith Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 . 5 0 5 ĠG iB ". to Size ()). isEqualTo ( 2 . 5 0 5 . G ib i . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġthree - letter ĠK iB `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 ĠK iB ". to Size ()). isEqualTo ( 2 . K ib i . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġupper - case Ġk ilo Ġbyte `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 ĠKB ". to Size ()). isEqualTo ( 2 . K ib i . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠWith Decimal Prefix Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġinteger Ġwith Ġno Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 GB ". to Size ()). isEqualTo ( 2 . G iga . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġinteger Ġwith Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 ĠGB ". to Size ()). isEqualTo ( 2 . G iga . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġfraction al Ġwith Ġno Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 . 5 0 5 GB ". to Size ()). isEqualTo ( 2 . 5 0 5 . G iga . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġfraction al Ġwith Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 . 5 0 5 ĠGB ". to Size ()). isEqualTo ( 2 . 5 0 5 . G iga . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġlower - case Ġk ilo Ġbyte `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 ĠkB ". to Size ()). isEqualTo ( 2 . ki lo . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠWith No Prefix Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġinteger Ġwith Ġno Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 B ". to Size ()). isEqualTo ( 2 . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġinteger Ġwith Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 ĠB ". to Size ()). isEqualTo ( 2 . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġfraction al Ġwith Ġno Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 . 5 0 5 B ". to Size ()). isEqualTo ( 2 . 5 0 5 . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġfraction al Ġwith Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 . 5 0 5 ĠB ". to Size ()). isEqualTo ( 2 . 5 0 5 . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠWith No Unit Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġinteger Ġwith Ġno Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 ". to Size ()). isEqualTo ( 2 . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġparse Ġfraction al Ġwith Ġno Ġspacing `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That (" 2 . 5 0 5 ". to Size ()). isEqualTo ( 2 . 5 0 5 . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġthrow Ġon Ġinvalid `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws < Number FormatException > Ġ{ Ġ" abc ". to Size () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠSum By Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġsum Ġby `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( sequence Of ( 1 . bytes , Ġ 2 . ki lo . bytes , Ġ 3 . M eb i . bytes ). sum By Ġ{ Ġit Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( 1 . bytes Ġ+ Ġ 2 . ki lo . bytes Ġ+ Ġ 3 . M eb i . bytes ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ val ĠAssertion . Builder < out ĠPath >. size Ġget () Ġ= Ġget Ġ{ Ġget Size () Ġ} Ċ Ċ fun Ġ< T Ġ: ĠPath > ĠAssertion . Builder < T >. has Size ( size : ĠSize ) Ġ= ĊĠĠĠ Ġassert (" has Ġ$ size ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactual Size Ġ= Ġit . getSize () ĊĠĠĠĠĠĠĠ Ġwhen Ġ( actual Size Ġ== Ġsize ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġpass () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfail (" was Ġ$ actual Size Ġ(${ actual Size . bytes } ĠB ; ĠÎĶ : Ġ${ actual Size Ġ- Ġsize }) ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ