   end
 
   test "collects multiple invalid options" do
-    args = ["--bad", "opt", "foo", "-o", "bad", "bar"]
-    assert OptionParser.parse(args, switches: [bad: :integer])
+    argv = ["--bad", "opt", "foo", "-o", "bad", "bar"]
+    assert OptionParser.parse(argv, switches: [bad: :integer])
            == {[], ["foo", "bar"], [{"--bad", "opt"}, {"-o", "bad"}]}
   end
 


  test "parse!/2 raise an exception for an unknown option using strict" do
    assert_raise OptionParser.ParseError, "1 error found!\n--doc : Unknown option", fn ->
      args = ["--source", "from_docs/", "--doc", "show"]
      OptionParser.parse!(args, strict: [source: :string, docs: :string])
    end
  end

  test "parse!/2 raise an exception when an option is of the wrong type" do
    assert_raise OptionParser.ParseError, fn ->
      args = ["--bad", "opt", "foo", "-o", "bad", "bar"]
      OptionParser.parse!(args, switches: [bad: :integer])
    end
  end

  test "parse_head!/2 raise an exception when an option is of the wrong type" do
    assert_raise OptionParser.ParseError, "1 error found!\n--number : Expected type integer, got \"lib\"", fn ->
      args = ["--number", "lib", "test/enum_test.exs"]
      OptionParser.parse_head!(args, strict: [number: :integer])
    end
  end


    assert OptionParser.parse(["arg1", "-43.2"])
      == {[], ["arg1", "-43.2"], []}

    assert OptionParser.parse(["arg1", "-o", "-43.2"], switches: [option: :float], aliases: [o: :option])
      == {[option: -43.2], ["arg1"], []}

    assert OptionParser.parse(["arg1", "--option=-43.2"], switches: [option: :float])
      == {[option: -43.2], ["arg1"], []}
  end

