mirror of
https://github.com/duke-git/lancet.git
synced 2025-09-27 03:45:58 +08:00
37 lines
587 B
Go
37 lines
587 B
Go
package algorithm
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/duke-git/lancet/internal"
|
|
)
|
|
|
|
func TestLRUCache(t *testing.T) {
|
|
asssert := internal.NewAssert(t, "TestLRUCache")
|
|
|
|
cache := NewLRUCache[int, int](2)
|
|
|
|
cache.Put(1, 1)
|
|
cache.Put(2, 2)
|
|
|
|
_, ok := cache.Get(0)
|
|
asssert.Equal(false, ok)
|
|
|
|
v, ok := cache.Get(1)
|
|
asssert.Equal(true, ok)
|
|
asssert.Equal(1, v)
|
|
|
|
v, ok = cache.Get(2)
|
|
asssert.Equal(true, ok)
|
|
asssert.Equal(2, v)
|
|
|
|
cache.Put(3, 3)
|
|
v, ok = cache.Get(1)
|
|
asssert.Equal(false, ok)
|
|
asssert.NotEqual(1, v)
|
|
|
|
v, ok = cache.Get(3)
|
|
asssert.Equal(true, ok)
|
|
asssert.Equal(3, v)
|
|
}
|