Sha256: 333c3e98a4be351b5e1f793ded45a6a71f2db98a3060f450aec8d7cc5c628632

Contents?: true

Size: 1.06 KB

Versions: 10

Compression:

Stored size: 1.06 KB

Contents

require 'test_helper'
require 'tins'

module Tins
  class LRUCacheTest < Test::Unit::TestCase
    def setup
      @cache = LRUCache.new(3)
    end

    def test_can_be_filled_to_capacity
      assert_equal 0, @cache.size
      @cache[1] = 1
      assert_equal 1, @cache.size
      @cache[2] = 2
      assert_equal 2, @cache.size
      @cache[3] = 3
      assert_equal 3, @cache.size
      @cache[4] = 4
      assert_equal 3, @cache.size
      assert_equal 4, @cache.first[0]
    end

    def test_reorders_based_on_recency
      (1..3).each do |i|
        @cache[i] = i
      end
      assert_equal 3, @cache.first[0]
      @cache[1]
      assert_equal 1, @cache.first[0]
    end

    def test_can_be_cleared
      (1..3).each do |i|
        @cache[i] = i
      end
      assert_equal 3, @cache.size
      @cache.clear
      assert_equal 0, @cache.size
    end

    def test_can_be_deleted_from
      (1..3).each do |i|
        @cache[i] = i
      end
      assert_equal 3, @cache.size
      @cache.delete 2
      assert_equal 2, @cache.size
      assert_nil @cache[2]
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
tins-1.34.0 tests/lru_cache_test.rb
tins-1.33.0 tests/lru_cache_test.rb
tdiary-5.2.4 vendor/bundle/ruby/3.1.0/gems/tins-1.31.1/tests/lru_cache_test.rb
tins-1.32.1 tests/lru_cache_test.rb
tins-1.32.0 tests/lru_cache_test.rb
tdiary-5.2.3 vendor/bundle/ruby/3.1.0/gems/tins-1.31.1/tests/lru_cache_test.rb
tdiary-5.2.2 vendor/bundle/ruby/3.1.0/gems/tins-1.31.1/tests/lru_cache_test.rb
tins-1.31.1 tests/lru_cache_test.rb
tdiary-5.2.1 vendor/bundle/ruby/3.1.0/gems/tins-1.31.0/tests/lru_cache_test.rb
tins-1.31.0 tests/lru_cache_test.rb