package Ġcom . a oc . vault Ċ Ċ import Ġassert k . assertThat Ċ import Ġassert k . assertions . isEqualTo Ċ import Ġassert k . assertions . isFalse Ċ import Ġassert k . assertions . isNull Ċ import Ġassert k . assertions . isTrue Ċ import Ġcom . a oc . math . Point 2 D Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠVault Cache Test Ġ{ ĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠAdd Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġadd () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠVault Cache () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . add ( Key (' A ', ĠPoint 2 D ( 0 , 0 ), Ġmutable ListOf ())) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( cache . contains ( Key (' A ', ĠPoint 2 D ( 0 , 0 ), Ġmutable ListOf ()))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠGet Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠVault Cache () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= ĠKey (' A ', ĠPoint 2 D ( 0 , Ġ 0 ), Ġmutable ListOf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . add ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( cache . get ( key )). isEqualTo ( key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġget When Collected Keys Are Same () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= ĠKey (' A ', ĠPoint 2 D ( 1 2 , 1 5 ), Ġmutable ListOf ( Key (' B ', ĠPoint 2 D ( 1 , 9 ), Ġmutable ListOf ()))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠVault Cache () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . add ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( cache . get ( key )). isEqualTo ( key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġget When Collected Keys Are Different () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= ĠKey (' A ', ĠPoint 2 D ( 1 2 , 1 5 ), Ġmutable ListOf ( Key (' B ', ĠPoint 2 D ( 1 , 9 ), Ġmutable ListOf ()))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠVault Cache () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . add ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( cache . get ( Key (' A ', ĠPoint 2 D ( 1 2 , 1 5 ), Ġmutable ListOf ( Key (' C ', ĠPoint 2 D ( 2 , 5 ), Ġmutable ListOf ())) ))). isNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠContains Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġempty Cache () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Vault Cache (). contains ( Key (' F ', ĠPoint 2 D ( 2 3 , 5 ), Ġmutable ListOf ())) ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġdoes Not Contain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠVault Cache () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . add ( Key (' T ', ĠPoint 2 D ( 1 2 , Ġ 3 ), Ġmutable ListOf ())) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( cache . contains ( Key (' F ', ĠPoint 2 D ( 2 3 , 5 ), Ġmutable ListOf ())) ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġcontains Key With No Links () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠVault Cache () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . add ( Key (' V ', ĠPoint 2 D ( 4 , Ġ 1 4 ), Ġmutable ListOf ())) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( cache . contains ( Key (' V ', ĠPoint 2 D ( 4 , Ġ 1 4 ), Ġmutable ListOf ())) ). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġkey Fields Match () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠVault Cache () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . add ( Key (' G ', ĠPoint 2 D ( 1 2 , Ġ 4 ), Ġmutable ListOf ( Key (' F ', ĠPoint 2 D ( 5 , Ġ 8 ), Ġmutable ListOf ())) )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( cache . contains ( Key (' G ', ĠPoint 2 D ( 1 2 , Ġ 4 ), Ġmutable ListOf ( Key (' F ', ĠPoint 2 D ( 5 , Ġ 8 ), Ġmutable ListOf ())) ))). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġcollected Keys Are Different () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠVault Cache () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . add ( Key (' G ', ĠPoint 2 D ( 1 2 , Ġ 4 ), Ġmutable ListOf ())) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( cache . contains ( Key (' G ', ĠPoint 2 D ( 1 2 , Ġ 4 ), Ġmutable ListOf ( Key (' F ', ĠPoint 2 D ( 5 , Ġ 8 ), Ġmutable ListOf ())) ))). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġcollection Keys Same But They Have Nested Keys Too () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠVault Cache () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcached Key Ġ= ĠKey (' G ', ĠPoint 2 D ( 1 2 , Ġ 4 ), Ġmutable ListOf ( Key (' F ', ĠPoint 2 D ( 5 , Ġ 8 ), Ġmutable ListOf ( Key (' K ', ĠPoint 2 D ( 1 , 2 ), Ġmutable ListOf ())) ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . add ( cached Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( cache . contains ( Key (' G ', ĠPoint 2 D ( 1 2 , 4 ), Ġmutable ListOf ( Key (' F ', ĠPoint 2 D ( 5 , 8 ), Ġmutable ListOf ())) ))). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }