43 lines
701 B
Ruby
43 lines
701 B
Ruby
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
|
|
|