package Ġtech . k zen . auto . server . objects . report . exec . output . pivot . row . value . store Ċ Ċ import Ġtech . k zen . auto . server . objects . report . exec . output . pivot . store . File Offset Store Ċ import Ġjava . nio . file . Files Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals ĊĊ Ċ class ĠFile Offset Store Test Ġ{ ĊĠĠĠ Ġ// ---------------------------------------------------------------- ------------------------------------------------ - ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġempty Has Zero Size () Ġ{ ĊĠĠĠĠĠĠĠ Ġuse Ġ{ Ġstore Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġstore . end Offset ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd Zero Size Still Zero () Ġ{ ĊĠĠĠĠĠĠĠ Ġuse Ġ{ Ġstore Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . add ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġstore . end Offset ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspan Ġ= Ġstore . get ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġspan . offset ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġspan . length ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd Single In creases Offset () Ġ{ ĊĠĠĠĠĠĠĠ Ġuse Ġ{ Ġstore Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . add ( 4 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 4 2 , Ġstore . end Offset ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspan Ġ= Ġstore . get ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġspan . offset ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 4 2 , Ġspan . length ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd Second In creases Offset () Ġ{ ĊĠĠĠĠĠĠĠ Ġuse Ġ{ Ġstore Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . add ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . add ( 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 3 0 , Ġstore . end Offset ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= Ġstore . get ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġfirst . offset ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 , Ġfirst . length ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsecond Ġ= Ġstore . get ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 , Ġsecond . offset ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 0 , Ġsecond . length ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd Second Third In creases Offset () Ġ{ ĊĠĠĠĠĠĠĠ Ġuse Ġ{ Ġstore Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . add ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . add ( 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . add ( 3 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 6 0 , Ġstore . end Offset ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= Ġstore . get ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġfirst . offset ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 , Ġfirst . length ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsecond Ġ= Ġstore . get ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 , Ġsecond . offset ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 0 , Ġsecond . length ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthird Ġ= Ġstore . get ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 3 0 , Ġthird . offset ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 3 0 , Ġthird . length ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// ---------------------------------------------------------------- ------------------------------------------------ - Ċ // ĠĠĠ Ġ@ Opt In ( Experimental Path Api :: class ) ĊĠĠĠ Ġprivate Ġfun Ġuse ( consumer : Ġ( File Offset Store ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġkotlin . io . path . create TempFile (" File Indexed Store Offset Test ") ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Offset Store ( file ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconsumer . invoke ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . delete ( file ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }