updated koans with latest src

This commit is contained in:
Jim Weirich
2011-12-04 01:17:59 -05:00
parent 271dff2353
commit 1a17730862
2 changed files with 31 additions and 7 deletions

View File

@@ -1,18 +1,32 @@
require File.expand_path(File.dirname(__FILE__) + '/edgecase')
class AboutIteration < EdgeCase::Koan
# -- An Aside ------------------------------------------------------
# Ruby 1.8 stores names as strings. Ruby 1.9 stores names as
# symbols. So we use a version dependent method "as_name" to convert
# to the right format in the koans. We will use "as_name" whenever
# comparing to lists of methods.
in_ruby_version("1.8") do
def test_each_is_a_method_on_arrays
assert_equal __, [].methods.include?("each")
def as_name(name)
name.to_s
end
end
in_ruby_version("1.9") do
def test_each_is_a_method_on_arrays
assert_equal __, [].methods.include?(:each)
def as_name(name)
name.to_sym
end
end
# Ok, now back to the Koans.
# -------------------------------------------------------------------
def test_each_is_a_method_on_arrays
assert_equal __, [].methods.include?(as_name(:each))
end
def test_iterating_with_each
array = [1, 2, 3]
sum = 0
@@ -72,7 +86,7 @@ class AboutIteration < EdgeCase::Koan
result = [2, 3, 4].inject(0) { |sum, item| sum + item }
assert_equal __, result
result2 = [2, 3, 4].inject(1) { |product, item| product * item }
result2 = [2, 3, 4].inject(1) { |sum, item| sum * item }
assert_equal __, result2
# Extra Credit: