package Ġtech . k zen . auto . server . objects . report . exec . output . pivot . stats . store Ċ Ċ import Ġtech . k zen . auto . common . objects . document . report . spec . analysis . pivot . Pivot ValueType Ċ import Ġtech . k zen . auto . server . objects . report . exec . output . pivot . stats . Value Statistics Ċ import Ġjava . nio . file . Files Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals ĊĊ Ċ class ĠFile Value Statistics Store Test Ġ{ ĊĠĠĠ Ġ// ---------------------------------------------------------------- ------------------------------------------------ - ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġempty With Missing Row () Ġ{ ĊĠĠĠĠĠĠĠ Ġuse ( 1 ) Ġ{ Ġstore Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= Ġstore . get ( 0 , ĠlistOf ( Indexed Value ( 0 , ĠP ivot ValueType . Count ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( Value Statistics . is Missing ( values [ 0 ])) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcount Of Single () Ġ{ ĊĠĠĠĠĠĠĠ Ġuse ( 1 ) Ġ{ Ġstore Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . add OrUpdate ( 0 , Ġdouble ArrayOf ( 1 . 0 )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= Ġstore . get ( 0 , ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIndexed Value ( 0 , ĠP ivot ValueType . Count ))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 . 0 , Ġvalues [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcount And Sum Of F ew () Ġ{ ĊĠĠĠĠĠĠĠ Ġuse ( 1 ) Ġ{ Ġstore Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . add OrUpdate ( 1 , Ġdouble ArrayOf ( 1 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . add OrUpdate ( 1 , Ġdouble ArrayOf ( 1 5 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . add OrUpdate ( 0 , Ġdouble ArrayOf ( 4 2 . 0 )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Values Ġ= Ġstore . get ( 0 , ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIndexed Value ( 0 , ĠP ivot ValueType . Count ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIndexed Value ( 0 , ĠP ivot ValueType . Sum ))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 . 0 , Ġfirst Values [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 4 2 . 0 , Ġfirst Values [ 1 ]) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsecond Values Ġ= Ġstore . get ( 1 , ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIndexed Value ( 0 , ĠP ivot ValueType . Count ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIndexed Value ( 0 , ĠP ivot ValueType . Sum ))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 . 0 , Ġsecond Values [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 5 . 0 , Ġsecond Values [ 1 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsum Of Two Columns () Ġ{ ĊĠĠĠĠĠĠĠ Ġuse ( 2 ) Ġ{ Ġstore Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . add OrUpdate ( 0 , Ġdouble ArrayOf ( 1 0 . 0 , Ġ 2 0 . 0 )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= Ġstore . get ( 0 , ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIndexed Value ( 0 , ĠP ivot ValueType . Sum ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIndexed Value ( 1 , ĠP ivot ValueType . Sum ))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 . 0 , Ġvalues [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 0 . 0 , Ġvalues [ 1 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// ---------------------------------------------------------------- ------------------------------------------------ - Ċ // ĠĠĠ Ġ@ Opt In ( Experimental Path Api :: class ) ĊĠĠĠ Ġprivate Ġfun Ġuse ( value Column Count : ĠInt , Ġconsumer : Ġ( File Value Statistics Store ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġkotlin . io . path . create TempFile (" File Value Statistics Store ") ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Value Statistics Store ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Column Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconsumer . invoke ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . delete ( file ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }