package mempool import ( "crypto/rand" "testing" "github.com/stretchr/testify/require" ) func TestCacheRemove(t *testing.T) { cache := NewLRUTxCache(100) numTxs := 10 txs := make([][]byte, numTxs) for i := 0; i < numTxs; i++ { // probability of collision is 2**-256 txBytes := make([]byte, 32) _, err := rand.Read(txBytes) require.NoError(t, err) txs[i] = txBytes cache.Push(txBytes) // make sure its added to both the linked list and the map require.Equal(t, i+1, len(cache.cacheMap)) require.Equal(t, i+1, cache.list.Len()) } for i := 0; i < numTxs; i++ { cache.Remove(txs[i]) // make sure its removed from both the map and the linked list require.Equal(t, numTxs-(i+1), len(cache.cacheMap)) require.Equal(t, numTxs-(i+1), cache.list.Len()) } }