This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
covers 'facets/memoizable'
|
||||
|
||||
test_case Memoizable do
|
||||
|
||||
method :memoize do
|
||||
|
||||
test "returns expected values" do
|
||||
c = Class.new do
|
||||
include Memoizable
|
||||
def initialize(a)
|
||||
@a = a
|
||||
end
|
||||
attr_accessor :a
|
||||
memoize :a
|
||||
end
|
||||
|
||||
o = c.new("A")
|
||||
o.a.assert == "A"
|
||||
o.a = "B"
|
||||
o.a.assert == "A"
|
||||
end
|
||||
|
||||
test "returns identical objects" do
|
||||
c = Class.new do
|
||||
include Memoizable
|
||||
def initialize(a)
|
||||
@a = a
|
||||
end
|
||||
attr_accessor :a
|
||||
memoize :a
|
||||
end
|
||||
|
||||
o = c.new("A")
|
||||
o.a.__id__.assert == o.a.__id__
|
||||
o.a = "B"
|
||||
o.a.__id__.assert == o.a.__id__
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user