package Ġio . wave beans . lib . stream Ċ Ċ import Ġassert k . assertThat Ċ import Ġio . wave beans . lib .* Ċ import Ġio . wave beans . lib . stream . window . window Ċ import Ġorg . spe k framework . spe k 2 . Spe k Ċ import Ġorg . spe k framework . spe k 2 . style . specification . describe Ċ Ċ object ĠMap Stream Spec Ġ: ĠSpe k ({ ĊĠĠĠ Ġdescribe (" Sample Ġto ĠSample Ġmapping ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstream Ġ= Ġ( 0 .. 5 ). stream () ĊĊĠĠĠĠĠĠĠ Ġit (" should Ġhave Ġdouble d Ġvalue Ġif Ġmultiply Ġevery Ġsample Ġby Ġ 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( stream . map Ġ{ Ġit Ġ* Ġ 2 Ġ}. toList Int ()). is ListOf ( 0 , Ġ 2 , Ġ 4 , Ġ 6 , Ġ 8 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġit (" should Ġhave Ġvalues Ġno Ġbigger Ġthan Ġ 3 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( stream . map Ġ{ Ġif Ġ( it Ġ>= Ġsample Of ( 3 )) Ġsample Of ( 3 ) Ġelse Ġit Ġ}. toList Int ()). is ListOf ( 0 , Ġ 1 , Ġ 2 , Ġ 3 , Ġ 3 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdescribe (" Sample Ġto Ġanother Ġtype Ġmapping ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstream Ġ= Ġ( 0 .. 5 ). stream () ĊĊĠĠĠĠĠĠĠ Ġit (" should Ġmap Ġto Ġstring Ġvalues Ġof Ġint Ġsamples ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( stream . map Ġ{ Ġit . as Int (). toString () Ġ}. as Sequence ( 1 . 0 f ). toList ()). is ListOf (" 0 ", Ġ" 1 ", Ġ" 2 ", Ġ" 3 ", Ġ" 4 ", Ġ" 5 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdescribe (" Window < Sample > Ġto ĠSample Ġmapping ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstream Ġ= Ġ( 0 .. 5 ). stream (). window ( 2 ) ĊĊĠĠĠĠĠĠĠ Ġit (" should Ġhave Ġonly Ġfirst Ġelements Ġof Ġwindow ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( stream . map Ġ{ Ġit . elements . first () Ġ}. toList Int ()). is ListOf ( 0 , Ġ 2 , Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġit (" should Ġhave Ġonly Ġlast Ġelements Ġof Ġwindow ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( stream . map Ġ{ Ġit . elements . last () Ġ}. toList Int ()). is ListOf ( 1 , Ġ 3 , Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }) Ċ Ċ private Ġfun ĠBean Stream < Sample >. toList Int () Ġ= Ġthis . as Sequence ( 1 . 0 f ). map Ġ{ Ġit . as Int () Ġ}. toList ()