test/base/test_memoization.rb in nanoc3-3.2.0a4 vs test/base/test_memoization.rb in nanoc3-3.2.0b1
- old
+ new
@@ -1,9 +1,7 @@
# encoding: utf-8
-require 'test/helper'
-
class Nanoc3::MemoizationTest < MiniTest::Unit::TestCase
include Nanoc3::TestHelpers
class Sample1
@@ -34,10 +32,37 @@
end
memoize :run
end
+ class EqualSample
+
+ extend Nanoc3::Memoization
+
+ def initialize(value)
+ @value = value
+ end
+
+ def hash
+ 4
+ end
+
+ def eql?(other)
+ true
+ end
+
+ def ==(other)
+ true
+ end
+
+ def run(n)
+ @value*10 + n
+ end
+ memoize :run
+
+ end
+
def test
sample1a = Sample1.new(10)
sample1b = Sample1.new(15)
sample2a = Sample2.new(20)
sample2b = Sample2.new(25)
@@ -45,9 +70,21 @@
3.times do
assert_equal (10*10+5), sample1a.run(5)
assert_equal (10*15+7), sample1b.run(7)
assert_equal (100*20+5), sample2a.run(5)
assert_equal (100*25+7), sample2b.run(7)
+ end
+ end
+
+ def test_equal
+ sample1 = EqualSample.new(2)
+ sample2 = EqualSample.new(3)
+
+ 3.times do
+ assert_equal (2*10+5), sample1.run(5)
+ assert_equal (2*10+3), sample1.run(3)
+ assert_equal (3*10+5), sample2.run(5)
+ assert_equal (3*10+3), sample2.run(3)
end
end
end