package Ġdev . sv ilen iv an ov . raft kt . core Ċ Ċ import Ġkotlinx . coroutines . Flow Preview Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . flow .* Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠFlow Experiment s Ġ{ ĊĠĠĠ Ġ@ Opt In ( Flow Preview :: class ) ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġflat Map Merge () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġflow 1 Ġ= Ġflow < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 1 .. 3 ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit (" 1 : Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġflow 2 Ġ= Ġflow < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 6 .. 1 0 ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit (" 2 : Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġflow 1 . map Ġ{ Ġflow 2 Ġ}. flatten Concat (). collect Ġ{ Ġprintln ( it ) Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ