     # assert String.contains?(output, "no such file or directory")
     assert output == 'no such file or directory'
   end
-  
+
   test "FizzBuzz" do
     fizzbuzz = fn
       (0, 0, _) -> "FizzBuzz"

  test "Passing functions as arguments" do
    times_2 = fn (x) -> 2 * x end
    apply = fn (fun, value) -> fun.(value) end
    
    assert apply.(times_2, 8) == 16
  end
  
  test "The & notation" do
    times_2 = &(&1 * 2)
    assert times_2.(9) == 18
    
    multiply = &(&1 * &2)
    assert multiply.(20, 10) == 200
    
    # Elixir will remove the indirection here
    # &(IO.puts(&1))
  end
  
  test "Tuples functions" do
    divrem = fn (a, b) -> { div(a, b), rem(a, b) } end
    assert divrem.(10, 3) == { 3, 1 }
    
    short_divrem = &{div(&1, &2), rem(&1, &2)}
    assert short_divrem.(10, 3) == { 3, 1 }
  end
  
  test "Exercise: Functions-5" do
    original = Enum.map [1,2,3,4], fn x -> x + 2 end
    rewritten = Enum.map [1,2,3,4], &(&1 + 2)
    assert original == rewritten
    
#    original = Enum.map [1,2,3,4], fn x -> IO.inspect(x) end
#    rewritten = Enum.map [1,2,3,4], &(IO.inspect(&1))
#    rewritten = Enum.map [1,2,3,4], &IO.inspect/1
#    assert original == rewritten
  end
  
  test "Module" do
    # woot, I can define a module here?
    defmodule Times do

      { :ok, opened_file } -> IO.read(opened_file, :all)
      { _, error } -> :file.format_error(error)
    end

    output = handle_open.(File.open("koans_test.exs"))
    assert String.contains?(output, "KoansTest")

