Sha256: 9796a18eb73711c89da6a5b602d328adec2557b2912ad5cfab60a84965902bec

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

require 'test_helper'

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

6 entries across 6 versions & 1 rubygems

Version Path
tins-1.38.0 tests/lru_cache_test.rb
tins-1.37.1 tests/lru_cache_test.rb
tins-1.37.0 tests/lru_cache_test.rb
tins-1.36.1 tests/lru_cache_test.rb
tins-1.36.0 tests/lru_cache_test.rb
tins-1.35.0 tests/lru_cache_test.rb