<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -317,6 +317,44 @@ describe &quot;Method parameter binding&quot; do
           @target.send(meth, @values[input]).should == result
         end
       end
+      next if result.class == Class &amp;&amp; result &lt; Exception
+      it &quot;passes the correct input (#{input}) into method (#{meth})&quot; do
+        value = @values[input]
+        @target.send(meth, value)
+        #TODO: there has to be a better way
+        result = case meth.to_s
+                 when /Boolean/
+                   value ? true : false
+                 when /Single/
+                   if value.is_a? System::UInt32
+                     System::Single.parse(value.to_s)
+                   elsif value.is_a? System::Int32
+                     System::Single.parse(value.to_s)
+                   elsif value.is_a? System::Char
+                     System::Single.induced_from(System::Convert.to_int32(value))
+                   elsif value.is_a? Float
+                     System::Convert.to_single(value)
+                   end
+                 when /Double/
+                   if value.is_a? System::Char
+                     System::Double.induced_from(System::Convert.to_int32(value))
+                   end
+                 when /Decimal/
+                   if value.is_a? System::Char
+                     System::Decimal.induced_from(System::Convert.to_int32(value))
+                   end
+                 when /Char/
+                   if value.is_a? System::String
+                     value[0]
+                   elsif value.is_a? String
+                     value[0..0]
+                   end
+                 else
+                   value
+                 end
+        result.nil? ? result = value : nil
+        @target.tracker.should == [result]
+      end
     end
   end
 end</diff>
      <filename>Merlin/Main/Languages/Ruby/Tests/Interop/net/method/invocation/binding_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -40,3 +40,29 @@ fails:Method parameter binding binds 'NullableInt32Arg' for 'System::UInt64MaxVa
 fails:Method parameter binding binds 'NullableInt32Arg' for 'System::UInt64MaxValue' with 'System::OverflowException'
 fails:Method parameter binding binds 'NullableInt32Arg' for 'System::UInt64MinValue' with 'NullableInt32Arg'
 fails:Method parameter binding binds 'NullableInt32Arg' for 'System::UInt64MinValuePlusOne' with 'NullableInt32Arg'
+fails:Method parameter binding passes the correct input (BigIntegerOne) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (BigIntegerZero) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::ByteMaxValueMinusOne) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::ByteMaxValue) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::ByteMinValue) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::ByteMinValuePlusOne) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::Int16MaxValueMinusOne) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::Int16MaxValue) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::Int16MinValue) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::Int16MinValuePlusOne) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::SByteMaxValueMinusOne) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::SByteMaxValue) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::SByteMinValue) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::SByteMinValuePlusOne) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::UInt16MaxValueMinusOne) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::UInt16MaxValue) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::UInt16MinValue) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::UInt16MinValuePlusOne) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::UInt32MinValue) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::UInt32MinValuePlusOne) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::UInt64MinValue) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::UInt64MinValuePlusOne) into method (NullableInt32Arg)
+fails:Method parameter binding passes the correct input (System::CharMaxValue) into method (DoubleArg)
+fails:Method parameter binding passes the correct input (System::CharMaxValue) into method (SingleArg)
+fails:Method parameter binding passes the correct input (System::SingleMaxValue) into method (BigIntegerArg)
+fails:Method parameter binding passes the correct input (System::SingleMinValue) into method (BigIntegerArg)</diff>
      <filename>Merlin/Main/Languages/Ruby/Tests/Interop/tags/net/method/invocation/binding_tags.txt</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>65d3b9c1ae94fb413c1f7d1dfa0300d05fa29d11</id>
    </parent>
  </parents>
  <author>
    <name>Jim Deville</name>
    <email>jdeville@microsoft.com</email>
  </author>
  <url>http://github.com/shri/ironruby/commit/1e50a35c1b0d5fd9f5a48daa7c8686ba85bd60ac</url>
  <id>1e50a35c1b0d5fd9f5a48daa7c8686ba85bd60ac</id>
  <committed-date>2009-09-02T11:00:43-07:00</committed-date>
  <authored-date>2009-09-02T11:00:43-07:00</authored-date>
  <message>Specs that the values passed to .net interop methods are correct. This includes
an ugly case/if statement that I really need to improve upon.</message>
  <tree>71d8d1a67d08f2d91d0b78e0791daa207468ceb8</tree>
  <committer>
    <name>Jim Deville</name>
    <email>jdeville@microsoft.com</email>
  </committer>
</commit>
