Back ported a lot of changes made to the Koans directory.
[ruby_koans.git] / koans / about_control_statements.rb
index 8ecf88e..df503d7 100644 (file)
@@ -1,4 +1,4 @@
-require 'edgecase'
+require File.expand_path(File.dirname(__FILE__) + '/edgecase')
 
 class AboutControlStatements < EdgeCase::Koan
 
@@ -59,12 +59,20 @@ class AboutControlStatements < EdgeCase::Koan
 
   def test_unless_statement
     result = :default_value
-    unless false
+    unless false    # same as saying 'if !false', which evaluates as 'if true'
       result = :false_value
     end
     assert_equal __, result
   end
 
+  def test_unless_statement_evaluate_true
+    result = :default_value
+    unless true    # same as saying 'if !true', which evaluates as 'if false'
+      result = :true_value
+    end
+    assert_equal __, result
+  end
+
   def test_unless_statement_modifier
     result = :default_value
     result = :false_value unless false
@@ -93,13 +101,23 @@ class AboutControlStatements < EdgeCase::Koan
     assert_equal __, result
   end
 
+  def test_break_statement_returns_values
+    i = 1
+    result = while i <= 10
+      break i if i % 2 == 0
+      i += 1
+    end
+
+    assert_equal __, result
+  end
+
   def test_next_statement
     i = 0
     result = []
     while i < 10
       i += 1
       next if (i % 2) == 0
-      result << i 
+      result << i
     end
     assert_equal __, result
   end