Sha256: 67842306811b55fb4135d133e6294b91f49c3ecd7804d07bb5f603e027f3cc50
Contents?: true
Size: 1.09 KB
Versions: 13
Compression:
Stored size: 1.09 KB
Contents
require 'helper' class Nanoc::Int::MemoizationTest < Nanoc::TestCase class Sample1 extend Nanoc::Int::Memoization def initialize(value) @value = value end def run(n) @value * 10 + n end memoize :run end class Sample2 extend Nanoc::Int::Memoization def initialize(value) @value = value end def run(n) @value * 100 + n end memoize :run end class Upcaser extend Nanoc::Int::Memoization def run(value) value.upcase end memoize :run end def test_normal 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_weak_inspect upcaser = Upcaser.new 10_000.times do |i| upcaser.run("hello world #{i}") end GC.start GC.start # Should not raise upcaser.inspect end end
Version data entries
13 entries across 13 versions & 1 rubygems