package Ġtest . assert k Ċ Ċ import Ġassert k . all Ċ import Ġassert k . assert All Ċ import Ġassert k . assertThat Ċ import Ġassert k . assertions . contains Ċ import Ġassert k . assertions . does Not Contain Ċ import Ġassert k . assertions . isEqualTo Ċ import Ġkotlin . native . concurrent . Worker Ċ import Ġkotlin . native . concurrent . Future Ċ import Ġkotlin . native . concurrent . Transfer Mode Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assert Fails Ċ import Ġkotlin . test . assertFalse Ċ Ċ class ĠNative Assert All Test Ġ{ ĊĊĠĠĠ Ġ@ Test Ġfun Ġassert _ all _ is _ thread _ safe () Ġ{ ĊĠĠĠĠĠĠĠ Ġa B unch Of W ok ers Ġ{ Ġw Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġw . execute ( Transfer Mode . SAFE , Ġ{ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert All Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (" one "). isEqualTo (" one ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (" two "). isEqualTo (" two ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġall _ is _ thread _ safe () Ġ{ ĊĠĠĠĠĠĠĠ Ġa B unch Of W ok ers Ġ{ Ġw Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġw . execute ( Transfer Mode . SAFE , Ġ{ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (" one "). all Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontains (" o ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdoes Not Contain (" f ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġassert _ all _ does _ not _ catch _ out _ of _ memory _ errors () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġruns Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= Ġassert Fails Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert All Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( 1 ). given Ġ{ Ġthrow ĠOut Of Memory Error () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġruns Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( OutOf Memory Error :: class , Ġerror :: class ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( runs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġa B unch Of W ok ers ( f : Ġ( Worker ) Ġ-> ĠFuture < Unit >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġworkers Ġ= ĠArray ( 2 0 , Ġ{ ĠWorker . start () Ġ}) ĊĠĠĠĠĠĠĠ Ġval Ġfutures Ġ= Ġmutable Set Of < Future < Unit >>() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( w Ġin Ġworkers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfutures . add ( f ( w )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( future Ġin Ġfutures ) Ġ{ Ġfuture . result Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( w Ġin Ġworkers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġw . request Termination (). result ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ