163 lines
2.4 KiB
Ruby
163 lines
2.4 KiB
Ruby
require 'helper'
|
|
|
|
test_case LRUHash do
|
|
|
|
class_method :new do
|
|
h = LRUHash.new(10)
|
|
LRUHash.assert === h
|
|
end
|
|
|
|
method :max_size= do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h.max_size = 100
|
|
end
|
|
end
|
|
|
|
method :store do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h.store(:a, 1)
|
|
h[:a].assert == 1
|
|
end
|
|
end
|
|
|
|
method :[] do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h.store(:a, 1)
|
|
h[:a].assert == 1
|
|
end
|
|
|
|
test do
|
|
h = LRUHash.new(10){ |h,k| h[k] = 0 }
|
|
h[:a].assert == 0
|
|
end
|
|
end
|
|
|
|
method :empty? do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h.assert.empty?
|
|
end
|
|
end
|
|
|
|
method :key do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h.key(1).assert == :a
|
|
end
|
|
end
|
|
|
|
method :keys do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h.keys.assert == [:a]
|
|
end
|
|
end
|
|
|
|
method :values do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h.values.assert == [1]
|
|
end
|
|
end
|
|
|
|
method :values_at do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h[:b] = 2
|
|
h.values_at(:a).assert == [1]
|
|
end
|
|
end
|
|
|
|
method :has_key? do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h.assert.has_key?(:a)
|
|
end
|
|
end
|
|
|
|
method :has_value? do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h.assert.has_value?(1)
|
|
end
|
|
end
|
|
|
|
method :assoc do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h[:b] = 2
|
|
h.assoc(:a).assert == [:a,1]
|
|
end
|
|
end
|
|
|
|
method :rassoc do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h[:b] = 2
|
|
h.rassoc(1).assert == [:a,1]
|
|
end
|
|
end
|
|
|
|
method :each_key do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h[:b] = 2
|
|
h.each_key do |k|
|
|
[:a,:b].assert.include?(k)
|
|
end
|
|
end
|
|
end
|
|
|
|
method :each_value do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h[:b] = 2
|
|
h.each_value do |v|
|
|
[1,2].assert.include?(v)
|
|
end
|
|
end
|
|
end
|
|
|
|
method :clear do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h[:b] = 2
|
|
h.clear
|
|
h.assert.empty?
|
|
end
|
|
end
|
|
|
|
method :delete do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h.delete(:a)
|
|
h.assert.empty?
|
|
end
|
|
end
|
|
|
|
method :delete_if do
|
|
test do
|
|
h = LRUHash.new(10)
|
|
h[:a] = 1
|
|
h.delete_if{ |k,v| k == :a }
|
|
h.assert.empty?
|
|
end
|
|
end
|
|
|
|
end
|