summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-enum-chain/test/enum_chain.rb
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-09-02 16:50:47 +0900
committerGitHub <[email protected]>2019-09-02 16:50:47 +0900
commit148fffa21ad5cbf42526ce393d24cb214167a82e (patch)
tree25de63eda5eff0df6402921efbbc354c511f8c9b /mrbgems/mruby-enum-chain/test/enum_chain.rb
parentaea5880c10af262957e597cf875f38461c2c54e3 (diff)
parent66211394e1597e403f14aada81a993f5b1429066 (diff)
downloadmruby-148fffa21ad5cbf42526ce393d24cb214167a82e.tar.gz
mruby-148fffa21ad5cbf42526ce393d24cb214167a82e.zip
Merge pull request #4683 from shuujii/enumeratorChain-rewind-shouldnt-rewind-elements-arent-iterated
`Enumerator::Chain#rewind` shouldn't rewind elements aren't iterated
Diffstat (limited to 'mrbgems/mruby-enum-chain/test/enum_chain.rb')
-rw-r--r--mrbgems/mruby-enum-chain/test/enum_chain.rb21
1 files changed, 16 insertions, 5 deletions
diff --git a/mrbgems/mruby-enum-chain/test/enum_chain.rb b/mrbgems/mruby-enum-chain/test/enum_chain.rb
index 1d3d691ca..45bbc9a77 100644
--- a/mrbgems/mruby-enum-chain/test/enum_chain.rb
+++ b/mrbgems/mruby-enum-chain/test/enum_chain.rb
@@ -76,13 +76,24 @@ assert("Enumerator::Chain#size") do
end
assert("Enumerator::Chain#rewind") do
- rewound = []
+ rewound = nil
e1 = [1, 2]
e2 = (4..6)
- (class << e1; self end).define_method(:rewind) { rewound << __id__ }
- (class << e2; self end).define_method(:rewind) { rewound << __id__ }
- c = e1.chain(e2).each{}.rewind
- assert_equal [e2.__id__, e1.__id__], rewound
+ (class << e1; self end).define_method(:rewind) { rewound << self }
+ (class << e2; self end).define_method(:rewind) { rewound << self }
+ c = e1.chain(e2)
+
+ rewound = []
+ c.rewind
+ assert_equal [], rewound
+
+ rewound = []
+ c.each{break c}.rewind
+ assert_equal [e1], rewound
+
+ rewound = []
+ c.each{}.rewind
+ assert_equal [e2, e1], rewound
end
assert("Enumerator::Chain#+") do