package Ġcom . zz r . jet pack test . kotlin _ test Ċ Ċ import Ġandroidx . lifecycle . live Data Ċ import Ġcom . zz r . jet pack test . module _ logic . Repository Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . flow .* Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġkotlin . system . measure Time Millis Ċ Ċ /** Ċ Ġ* Ġ@ Author Ġzz r Ċ Ġ* Ġ@ Desc Ċ Ġ* Ġ@ Date Ġ 2 0 2 0 / 9 / 2 8 Ċ Ġ*/ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġflow Test 1 () ĊĠĠĠĠĠĠĠ Ġflow Test 4 () ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun Ġflow Test 1 () Ġ{ ĊĠĠĠ Ġflow Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠ Ġit * it ĊĠĠĠ Ġ}. flow On ( Dispatch ers . IO ) ĊĠĠĠĠĠĠĠ Ġ. collect Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( it ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun Ġflow Test 2 () Ġ{ ĊĠĠĠ Ġflow Of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 ). on Each Ġ{ ĊĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 ) ĊĠĠĠ Ġ}. collect Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( it ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun Ġflow Test 3 () Ġ{ ĊĠĠĠ ĠlistOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 ). as Flow () ĊĠĠĠĠĠĠĠ Ġ. on Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġ}. collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun Ġflow Test 4 () Ġ{ ĊĠĠĠ Ġval Ġtime Ġ= Ġmeasure Time Millis Ġ{ ĊĠĠĠĠĠĠĠ Ġchannel Flow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprintln (" cost Ġ$ time ") Ċ } Ċ Ċ fun Ġf ect ch Pokemon Info () Ġ= Ġlive Data < String > Ġ{ ĊĠĠĠ ĠRepository . fe atch Pokemon Info () Ċ } ĊĊĊ