fails:IO.new creates an IO instance from a Fixnum argument
fails:IO.new calls #to_int on an object to convert to a Fixnum
fails:IO.new accepts a :mode option
fails:IO.new accepts a mode argument set to nil with a valid :mode option
fails:IO.new accepts a mode argument with a :mode option set to nil
fails:IO.new raises an error if passed modes two ways
fails:IO.new uses the external encoding specified in the mode argument
fails:IO.new uses the external and the internal encoding specified in the mode argument
fails:IO.new uses the external encoding specified via the :external_encoding option
fails:IO.new uses the internal encoding specified via the :internal_encoding option
fails:IO.new uses the colon-separated encodings specified via the :encoding option
fails:IO.new uses the :encoding option as the external encoding when only one is given
fails:IO.new uses the :encoding options as the external encoding when it's an Encoding object
fails:IO.new ingores the :encoding option when the :external_encoding option is present
fails:IO.new ingores the :encoding option when the :internal_encoding option is present
fails:IO.new uses the encoding specified via the :mode option hash
fails:IO.new ignores the :internal_encoding option when the same as the external encoding
fails:IO.new sets internal encoding to nil when passed '-'
fails:IO.new raises an error if passed encodings two ways
fails:IO.new sets binmode from mode string
fails:IO.new does not set binmode without being asked
fails:IO.new sets binmode from :binmode option
fails:IO.new does not set binmode from false :binmode
fails:IO.new raises an error if passed binary/text mode two ways
fails:IO.new raises an error when trying to set both binmode and textmode
fails:IO.new sets external encoding to binary with binmode in mode string
fails:IO.new sets external encoding to binary with :binmode option
fails:IO.new does not use binary encoding when mode encoding is specified
fails:IO.new does not use binary encoding when :encoding option is specified
fails:IO.new does not use binary encoding when :external_encoding option is specified
fails:IO.new does not use binary encoding when :internal_encoding option is specified
fails:IO.new accepts nil options
fails:IO.new coerces mode with #to_str
fails:IO.new coerces mode with #to_int
fails:IO.new coerces mode with #to_str when passed in options
fails:IO.new coerces mode with #to_int when passed in options
fails:IO.new coerces :encoding option with #to_str
fails:IO.new coerces :external_encoding option with #to_str
fails:IO.new coerces :internal_encoding option with #to_str
fails:IO.new coerces options as third argument with #to_hash
fails:IO.new coerces options as second argument with #to_hash
fails:IO.new raises ArgumentError if not passed a hash or nil for options
fails:IO.new raises TypeError if passed a hash for mode and nil for options
fails:IO.new accepts an :autoclose option
fails:IO.new accepts any truthy option :autoclose
fails:IO.new raises an Errno::EBADF if the file descriptor is not valid
fails:IO.new raises an IOError if passed a closed stream
fails:IO.new raises an Errno::EINVAL if the new mode is not compatible with the descriptor's current mode
fails:IO.new raises ArgumentError if passed an empty mode string
