1 require File.expand_path(File.dirname(__FILE__) + '/edgecase')
3 class AboutControlStatements < EdgeCase::Koan
5 def test_if_then_else_statements
11 assert_equal __, result
14 def test_if_then_statements
15 result = :default_value
19 assert_equal __, result
22 def test_if_statements_return_values
28 assert_equal __, value
35 assert_equal __, value
37 # NOTE: Actually, EVERY statement in Ruby will return a value, not
41 def test_if_statements_with_no_else_with_false_condition_return_value
45 assert_equal __, value
48 def test_condition_operators
49 assert_equal __, (true ? :true_value : :false_value)
50 assert_equal __, (false ? :true_value : :false_value)
53 def test_if_statement_modifiers
54 result = :default_value
55 result = :true_value if true
57 assert_equal __, result
60 def test_unless_statement
61 result = :default_value
65 assert_equal __, result
68 def test_unless_statement_modifier
69 result = :default_value
70 result = :false_value unless false
72 assert_equal __, result
75 def test_while_statement
82 assert_equal __, result
85 def test_break_statement
93 assert_equal __, result
96 def test_next_statement
104 assert_equal __, result
107 def test_for_statement
108 array = ["fish", "and", "chips"]
111 result << item.upcase
113 assert_equal [__, __, __], result