fails:Module#protected_method_defined? returns true if the named protected method is defined by module or its ancestors
fails:Module#protected_method_defined? returns false if method is not a protected method
fails:Module#protected_method_defined? returns false if the named method is not defined by the module or its ancestors
fails:Module#protected_method_defined? accepts symbols for the method name
fails:Module#protected_method_defined? raises a TypeError if passed a Fixnum
fails:Module#protected_method_defined? raises a TypeError if passed nil
fails:Module#protected_method_defined? raises a TypeError if passed false
fails:Module#protected_method_defined? raises a TypeError if passed an object that does not defined #to_str
fails:Module#protected_method_defined? raises a TypeError if passed an object that defines #to_sym
fails:Module#protected_method_defined? calls #to_str to convert an Object
