package Ġcom . uch uh imo . collections Ċ Ċ import Ġcom . nat pr y ce . ham k rest . assertion . assertThat Ċ import Ġcom . nat pr y ce . ham k rest . equalTo Ċ import Ġcom . nat pr y ce . ham k rest . isIn Ċ import Ġorg . jetbrains . spe k . api . Spe k Ċ import Ġorg . jetbrains . spe k . api . dsl . given Ċ import Ġorg . jetbrains . spe k . api . dsl . it Ċ import Ġorg . jetbrains . spe k . api . dsl . on Ċ Ċ object ĠBi Map Spec Ġ: ĠSpe k ({ ĊĠĠĠ Ġgiven (" an Ġempty Ġb imap ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġempty Bi Map Ġ= Ġempty Bi Map < Int , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġit (" should Ġcontain Ġ 0 Ġelement ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( empty Bi Map . isEmpty (), ĠequalTo ( true )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon (" inverse ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinverse Bi Map Ġ= Ġempty Bi Map . inverse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġcontain Ġ 0 Ġelement ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( inverse Bi Map . isEmpty (), ĠequalTo ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġgiven (" a Ġb imap Ġwithout Ġelement ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbi Map Ġ= Ġbi Map Of < Int , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġit (" should Ġcontain Ġ 0 Ġelement ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( bi Map . isEmpty (), ĠequalTo ( true )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġgiven (" a Ġb imap Ġwith Ġone Ġelement ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbi Map Ġ= Ġbi Map Of ( 1 Ġto Ġ" 1 ") ĊĊĠĠĠĠĠĠĠ Ġit (" should Ġcontain Ġ 1 Ġelement ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( bi Map . size , ĠequalTo ( 1 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġit (" should Ġcontain Ġgiven Ġkey ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( bi Map . containsKey ( 1 ), ĠequalTo ( true )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġit (" should Ġcontain Ġgiven Ġvalue ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( bi Map . contains Value (" 1 "), ĠequalTo ( true )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġgiven (" a Ġb imap Ġwith Ġmultiple Ġelements ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbi Map Ġ= Ġbi Map Of ( 1 Ġto Ġ" 1 ", Ġ 2 Ġto Ġ" 2 ", Ġ 3 Ġto Ġ" 3 ") ĊĊĠĠĠĠĠĠĠ Ġit (" should Ġcontain Ġgiven Ġnumber Ġof Ġelements ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( bi Map . size , ĠequalTo ( 3 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġit (" should Ġcontain Ġgiven Ġkeys ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( 1 , ĠisIn ( bi Map . keys )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( 2 , ĠisIn ( bi Map . keys )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( 3 , ĠisIn ( bi Map . keys )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġit (" should Ġcontain Ġgiven Ġvalues ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (" 1 ", ĠisIn ( bi Map . values )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (" 2 ", ĠisIn ( bi Map . values )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (" 3 ", ĠisIn ( bi Map . values )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġit (" should Ġmap Ġfrom Ġkey Ġto Ġvalue Ġas Ġexpected ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( bi Map [ 1 ], ĠequalTo (" 1 ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġon (" inverse ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinverse Bi Map Ġ= Ġbi Map . inverse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġmap Ġfrom Ġkey Ġto Ġvalue Ġas Ġexpected ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( inverse Bi Map [" 1 "], ĠequalTo ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ