package Ġcom . google . devtools . k sp Ċ Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ Ċ class ĠM emo ized Sequence Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Concurrent Read () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmemoized Ġ= ĠM emo ized Sequence ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsequence Of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġs 1 Ġ= Ġmemoized . iterator () ĊĠĠĠĠĠĠĠ Ġval Ġs 2 Ġ= Ġmemoized . iterator () ĊĠĠĠĠĠĠĠ Ġval Ġs 1 read Ġ= Ġmutable ListOf < Int >() ĊĠĠĠĠĠĠĠ Ġval Ġs 2 read Ġ= Ġmutable ListOf < Int >() ĊĠĠĠĠĠĠĠ Ġwhile Ġ( s 1 . hasNext () Ġ|| Ġs 2 . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s 1 . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs 1 read . add ( s 1 . next ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s 2 . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs 2 read . add ( s 2 . next ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( listOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 ), Ġs 1 read ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( listOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 ), Ġs 2 read ) ĊĠĠĠ Ġ} Ċ } Ċ