title: assert with custom comparison function
body: <p>When testing some vector operations in my code I have to check for equality with some tolerance value because the <code>float</code> values may not be an exact match.</p>
  
  <p>Which means that my test asserts are like this:</p>
  
  <pre><code>Assert.That(somevector.EqualWithinTolerance(new Vec3(0f, 1f, 0f)), Is.True);
  </code></pre>
  
  <p>Instead of this:</p>
  
  <pre><code>Assert.That(somevector, Is.EqualTo(new Vec3(0f, 1f, 0f)));
  </code></pre>
  
  <p>And that means that my exceptions are like this:</p>
  
  <pre><code>Expected: True
  But was:  False
  </code></pre>
  
  <p>Instead of this:</p>
  
  <pre><code>Expected: 0 1 0
  But was:  1 0 9,536743E-07
  </code></pre>
  
  <p>Making it slightly harder to understand what went wrong.</p>
  
  <p><strong>How do I use a custom comparison function and still get a nice exception?</strong> </p>