# Unequal equality

**URL:** <https://www.ruby-forum.com/t/unequal-equality/197555>\
**Category:** Ruby\
**Created:** [October 15, 2010, 10:39pm UTC](https://www.ruby-forum.com/t/unequal-equality/197555 "2010-10-15T22:39:48Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/77aa72/32.png) [@Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/u/Dobai-Pataky_BSSSSl)\
**Post date:** [October 15, 2010, 10:39pm UTC](https://www.ruby-forum.com/t/unequal-equality/197555/1 "2010-10-15T22:39:48Z")

</div>

I’ve got such that output during testing my program:  
[terminal\_output]  
Loaded suite ./niep\_test  
Started  
…F.  
Finished in 0.009922 seconds.

1. Failure:  
test\_sanity(SFTester)  
[./niep\_test.rb:12:in `sanity' ./niep_test.rb:19:in`test\_sanity’]:  
\<7.8e-11\> expected but was  
\<7.8e-11\>.

6 tests, 9 assertions, 1 failures, 0 errors  
[/terminal\_output]

A you can see the assert\_equal function reports that something equal is  
not equal. WTF? Is it some bug in TestUnit package, or my program just  
looks to work fine?

---

<div class="post-metadata">

**Author:** ![felix.leg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/c89c15/32.png) [@felix.leg](https://www.ruby-forum.com/u/felix.leg)\
**Post date:** [October 15, 2010, 10:39pm UTC](https://www.ruby-forum.com/t/unequal-equality/197555/2 "2010-10-15T22:39:48Z")

</div>

On 10/15/2010 11:45 AM, felix.leg wrote:

> ./niep\_test.rb:19:in `test\_sanity’]:  
> \<7.8e-11\> expected but was  
> \<7.8e-11\>.
> 
> 6 tests, 9 assertions, 1 failures, 0 errors  
> [/terminal\_output]
> 
> A you can see the assert\_equal function reports that something equal is  
> not equal. WTF? Is it some bug in TestUnit package, or my program just  
> looks to work fine?

Probably it’s due to IEEE floating point inaccuracy. Try using  
assert\_in\_delta instead of assert\_equal whenever you compare floats in a  
test.

---

<div class="post-metadata">

**Author:** ![felix.leg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/c89c15/32.png) [@felix.leg](https://www.ruby-forum.com/u/felix.leg)\
**Post date:** [October 15, 2010, 10:39pm UTC](https://www.ruby-forum.com/t/unequal-equality/197555/3 "2010-10-15T22:39:48Z")

</div>

On Oct 15, 2010, at 11:45 , felix.leg wrote:

> A you can see the assert\_equal function reports that something equal is not  
> equal. WTF? Is it some bug in TestUnit package, or my program just looks to work  
> fine?

Welcome to floating point math. Equality is a no-no with floats. What  
you want is assert\_in\_delta.
