package Ġcom . kt mi . t mi . client Ċ Ċ // class ĠFlow Dis pen ser Tests Ġ{ Ċ // ĠĠĠ Ġval Ġdispatcher Ġ= ĠDispatch ers . Default Ċ // ĠĠĠ Ġlateinit Ġvar Ġunit Channel : ĠChannel < Unit > Ċ // ĠĠĠ Ġlateinit Ġvar Ġunit Dis pen ser : ĠFlow Dis pen ser < Unit > Ċ Ċ // ĠĠĠ Ġ@ Before Test Ċ // ĠĠĠ Ġfun Ġprepare () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġunit Channel Ġ= ĠChannel ( Channel . UN LIMIT ED ) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġfun Ġ` request Flow Ġdisp enses Ġworking Ġflows `() Ġ= Ġrun Test Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġ 5 Ċ // ĠĠĠĠĠĠĠ Ġval Ġcount Arr Ġ= ĠInt Array ( 5 ) Ġ{ Ġ 0 Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġiterations Ġ= ĠRandom . nextInt ( 2 .. 1 0 ) Ċ // ĠĠĠĠĠĠĠ Ġrepeat ( iterations ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġunit Channel . send ( Unit ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ ĠGlobal Scope . launch Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 0 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġunit Channel . close () Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġunit Dis pen ser Ġ= ĠFlow Dis pen ser ( unit Channel , Ġdispatcher ) Ċ // ĠĠĠĠĠĠĠ Ġrepeat ( count ) Ġ{ Ġindex Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġunit Dis pen ser . request Flow () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect Ġ{ Ġcount Arr [ index ] Ġ+= Ġ 1 Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ ĠassertEquals ( count Ġ* Ġiterations , Ġcount Arr . sum ()) Ċ // ĠĠĠ Ġ} Ċ //}