github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/algorithm/datastructures/lru_cache/lru_cache_test.go (about)

     1  package lru_cache
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/bmizerany/assert"
     6  	"testing"
     7  )
     8  
     9  func Test_Hostbit(t *testing.T) {
    10  	fmt.Println(hostbit)
    11  }
    12  
    13  func Test_LRU(t *testing.T) {
    14  	lru := Constructor(2)
    15  
    16  	lru.Put(1, 1)
    17  	lru.Put(2, 2)
    18  	assert.Equal(t, lru.Get(1), 1)  // returns 1
    19  	lru.Put(3, 3)                   // evicts key 2
    20  	assert.Equal(t, lru.Get(2), -1) // returns -1 (not found)
    21  	lru.Put(4, 4)                   // evicts key 1
    22  	assert.Equal(t, lru.Get(1), -1) // returns -1 (not found)
    23  	assert.Equal(t, lru.Get(3), 3)  // returns 3
    24  	assert.Equal(t, lru.Get(4), 4)  // returns 4
    25  }
    26  
    27  func Test_LRU_PutGet(t *testing.T) {
    28  	lru := Constructor(1)
    29  
    30  	lru.Put(1, 2)
    31  	assert.Equal(t, lru.Get(1), 2) // returns 2
    32  }
    33  
    34  func Test_LRU_PutGetPutGetGet(t *testing.T) {
    35  	lru := Constructor(1)
    36  
    37  	lru.Put(2, 1)
    38  	assert.Equal(t, lru.Get(2), 1) // returns 1
    39  	lru.Put(3, 2)
    40  	assert.Equal(t, lru.Get(2), -1) // returns -1
    41  	assert.Equal(t, lru.Get(3), 2)  // returns 2
    42  }
    43  
    44  func Test_LRU_PPGPPG(t *testing.T) {
    45  	lru := Constructor(2)
    46  
    47  	lru.Put(2, 1)
    48  	lru.Put(2, 2)
    49  	assert.Equal(t, lru.Get(2), 2) // returns 2
    50  	lru.Put(1, 4)
    51  	lru.Put(4, 1)
    52  	assert.Equal(t, lru.Get(2), -1) // returns -1
    53  	assert.Equal(t, lru.Get(3), -1) // returns -1
    54  }
    55  
    56  func Test_LRU_PPGPPG_2(t *testing.T) {
    57  	lru := Constructor(2)
    58  
    59  	lru.Put(2, 1)
    60  	lru.Put(2, 2)
    61  	assert.Equal(t, lru.Get(2), 2) // returns 2
    62  	lru.Put(1, 1)
    63  	lru.Put(4, 1)
    64  	assert.Equal(t, lru.Get(2), -1) // returns -1
    65  	assert.Equal(t, lru.Get(3), -1) // returns -1
    66  }
    67  
    68  func Test_hash(t *testing.T) {
    69  	for i := 0; i < 60; i++ {
    70  		t.Log(i, hash(i))
    71  	}
    72  }