Sha256: 6db14b2aa3ea9de31f05c937c767ea9e24d4652b7d7b5a9ab3f4f1b07a047654
Contents?: true
Size: 1.33 KB
Versions: 2
Compression:
Stored size: 1.33 KB
Contents
# encoding: utf-8 class Nanoc::MemoizationTest < Nanoc::TestCase class Sample1 extend Nanoc::Memoization def initialize(value) @value = value end def run(n) @value * 10 + n end memoize :run end class Sample2 extend Nanoc::Memoization def initialize(value) @value = value end def run(n) @value * 100 + n end memoize :run end class EqualSample extend Nanoc::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) 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
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
nanoc-3.8.0 | test/base/test_memoization.rb |
nanoc-3.7.5 | test/base/test_memoization.rb |