package Ġtest . collections Ċ Ċ import Ġkotlin . test .* Ċ Ċ import Ġjava . util .* Ċ import Ġorg . junit . Test Ġ Ġas Ġtest Ċ Ċ class ĠMap Test Ġ{ ĊĊĠĠĠ Ġtest Ġfun Ġget OrElse () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠHashMap < String , ĠInt >() ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġdata . getOrElse (" foo "){ 2 } ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġa ) ĊĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġdata . getOrElse (" foo "){ 3 } ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġb ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġdata . size ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Ġfun Ġget Or Put () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠHashMap < String , ĠInt >() ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġdata . get Or Put (" foo "){ 2 } ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġa ) ĊĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġdata . get Or Put (" foo "){ 3 } ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġb ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġdata . size ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Ġfun Ġsize And Empty () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠHashMap < String , ĠInt >() ĊĠĠĠĠĠĠĠ ĠassertTrue { Ġdata . empty Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( data . size , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Ġfun Ġset Via Index Operators () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠ ĠassertTrue { Ġmap . empty Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( map . size , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġmap [" name "] Ġ= Ġ" James " ĊĊĠĠĠĠĠĠĠ ĠassertTrue { Ġ! map . empty Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( map . size (), Ġ 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" James ", Ġmap [" name "]) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġtest Ġfun Ġiterate () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠTreeMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġmap [" be verage "] Ġ= Ġ" beer " ĊĠĠĠĠĠĠĠ Ġmap [" location "] Ġ= Ġ" M ell s " ĊĠĠĠĠĠĠĠ Ġmap [" name "] Ġ= Ġ" James " ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġarray List < String >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( e Ġin Ġmap ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" key Ġ= Ġ${ e . getKey ()}, Ġvalue Ġ= Ġ${ e . getValue () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( e . getKey ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( e . getValue ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 6 , Ġlist . size ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" be verage , beer , location , M ell s , name , James ", Ġlist . make String ("," )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Ġfun Ġiterate With Properties () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠTreeMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġmap [" be verage "] Ġ= Ġ" beer " ĊĠĠĠĠĠĠĠ Ġmap [" location "] Ġ= Ġ" M ell s " ĊĠĠĠĠĠĠĠ Ġmap [" name "] Ġ= Ġ" James " ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġarray List < String >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( e Ġin Ġmap ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" key Ġ= Ġ${ e . key }, Ġvalue Ġ= Ġ${ e . value }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( e . key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( e . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 6 , Ġlist . size ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" be verage , beer , location , M ell s , name , James ", Ġlist . make String ("," )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ ĠTODO Ġcompiler Ġbug ĊĠĠĠĠĠĠĠ Ġwe Ġshould Ġbe Ġable Ġto Ġremove Ġthe Ġexplicit Ġtype Ġ< String , String , String > Ġon Ġthe Ġmap Ġfunction ĊĠĠĠĠĠĠĠ Ġhttp :// yout rack . jetbrains . net / issue / KT - 1 1 4 5 ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġtest Ġfun Ġmap () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm 1 Ġ= ĠTreeMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġm 1 [" be verage "] Ġ= Ġ" beer " ĊĠĠĠĠĠĠĠ Ġm 1 [" location "] Ġ= Ġ" M ell s " ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġm 1 . map < String , String , String >{ Ġit . value Ġ+ Ġ" Ġro cks " Ġ} ĊĊĠĠĠĠĠĠĠ Ġprintln (" Got Ġnew Ġlist Ġ$ list ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( array List (" beer Ġro cks ", Ġ" M ell s Ġro cks "), Ġlist ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ ĠTODO Ġcompiler Ġbug ĊĠĠĠĠĠĠĠ Ġwe Ġshould Ġbe Ġable Ġto Ġremove Ġthe Ġexplicit Ġtype Ġ< String , String , String > Ġon Ġthe Ġmap Values Ġfunction ĊĠĠĠĠĠĠĠ Ġhttp :// yout rack . jetbrains . net / issue / KT - 1 1 4 5 ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġtest Ġfun Ġmap Values () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm 1 Ġ= ĠTreeMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġm 1 [" be verage "] Ġ= Ġ" beer " ĊĠĠĠĠĠĠĠ Ġm 1 [" location "] Ġ= Ġ" M ell s " ĊĊĠĠĠĠĠĠĠ Ġval Ġm 2 Ġ= Ġm 1 . map Values < String , String , String >{ Ġit . value Ġ+ Ġ" 2 " Ġ} ĊĊĠĠĠĠĠĠĠ Ġprintln (" Got Ġnew Ġmap Ġ$ m 2 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( array List (" beer 2 ", Ġ" M ell s 2 "), Ġm 2 . values (). toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Ġfun Ġcreate Using Tuples () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġhash Map (# (" a ", Ġ 1 ), Ġ# (" b ", Ġ 2 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġmap . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġmap . get (" a ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġmap . get (" b ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Ġfun Ġcreate Using To () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġhash Map (" a " Ġto Ġ 1 , Ġ" b " Ġto Ġ 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġmap . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġmap . get (" a ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġmap . get (" b ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Ġfun Ġcreate Linked Map () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġlinked Map (# (" c ", Ġ 3 ), Ġ# (" b ", Ġ 2 ), Ġ# (" a ", Ġ 1 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġmap . get (" a ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġmap . get (" b ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġmap . get (" c ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( array List (" c ", Ġ" b ", Ġ" a "), Ġmap . keySet (). toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Ġfun Ġcreate Sorted Map () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġsorted Map (# (" c ", Ġ 3 ), Ġ# (" b ", Ġ 2 ), Ġ# (" a ", Ġ 1 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġmap . get (" a ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġmap . get (" b ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġmap . get (" c ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( array List (" a ", Ġ" b ", Ġ" c "), Ġmap . keySet () !!. toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Ġfun Ġto Sorted Map () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġhash Map < String , Int >( # (" c ", Ġ 3 ), Ġ# (" b ", Ġ 2 ), Ġ# (" a ", Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġsorted Ġ= Ġmap . to Sorted Map < String , Int >() ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsorted . get (" a ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsorted . get (" b ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġsorted . get (" c ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( array List (" a ", Ġ" b ", Ġ" c "), Ġsorted . keySet () !!. toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Ġfun Ġto Sorted Map With Comparator () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġhash Map (# (" c ", Ġ 3 ), Ġ# (" bc ", Ġ 2 ), Ġ# (" bd ", Ġ 4 ), Ġ# (" abc ", Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġcomparator < String >{ Ġa , Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanswer Ġ= Ġa . length () Ġ- Ġb . length () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( answer Ġ== Ġ 0 ) Ġa . compareTo ( b ) Ġelse Ġanswer ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsorted Ġ= Ġmap . to Sorted Map ( c ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( array List (" c ", Ġ" bc ", Ġ" bd ", Ġ" abc "), Ġsorted . keySet () !!. toList ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsorted . get (" abc ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsorted . get (" bc ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġsorted . get (" c ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠ ĠTODO ĊĠĠĠ Ġtest Ġcase Ġfor Ġhttp :// yout rack . jetbrains . com / issue / KT - 1 7 7 3 ĊĊĠĠĠ Ġtest Ġfun Ġcompiler Bug () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠTreeMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġmap [" be verage "] Ġ= Ġ" beer " ĊĠĠĠĠĠĠĠ Ġmap [" location "] Ġ= Ġ" M ell s " ĊĠĠĠĠĠĠĠ Ġmap [" name "] Ġ= Ġ" James " ĊĊĠĠĠĠĠĠĠ Ġvar Ġlist Ġ= Ġarray List < String >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( e Ġin Ġmap ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" key Ġ= Ġ${ e . getKey ()}, Ġvalue Ġ= Ġ${ e . getValue () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ+= Ġe . getKey () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ+= Ġe . getValue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 6 , Ġlist . size ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" be verage , beer , location , M ell s , name , James ", Ġlist . make String ("," )) ĊĠĠĠĠĠĠĠ Ġprintln (" ==== Ġworked ! Ġ$ list ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ*/ Ċ Ċ } Ċ