# Assertions involving NaN

**URL:** https://discuss.ocaml.org/t/assertions-involving-nan/10762
**Category:** Ecosystem
**Tags:** testing
**Created:** [November 5, 2022, 4:35pm UTC](https://discuss.ocaml.org/t/assertions-involving-nan/10762 "2022-11-05T16:35:48Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![nobrowser](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/nobrowser/32/2099_2.png) [@nobrowser](https://discuss.ocaml.org/u/nobrowser)
#### Post date: [November 5, 2022, 4:35pm UTC](https://discuss.ocaml.org/t/assertions-involving-nan/10762/1 "2022-11-05T16:35:48Z")

</div>

I use ounit to test the code of my lexer + parser. I have test input which should result in a NaN; I don’t know how to test this because `NaN != NaN` , so `assert_equal` will fail ☹

–  
Ian

---

<div class="post-metadata">

### Author: ![jfeser](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/jfeser/32/2093_2.png) [@jfeser](https://discuss.ocaml.org/u/jfeser)
#### Post date: [November 5, 2022, 4:38pm UTC](https://discuss.ocaml.org/t/assertions-involving-nan/10762/2 "2022-11-05T16:38:01Z")

</div>

Try `Float.is_nan`. See [OCaml library : Float](https://v2.ocaml.org/api/Float.html).

---

<div class="post-metadata">

### Author: ![nobrowser](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/nobrowser/32/2099_2.png) [@nobrowser](https://discuss.ocaml.org/u/nobrowser)
#### Post date: [November 5, 2022, 5:09pm UTC](https://discuss.ocaml.org/t/assertions-involving-nan/10762/3 "2022-11-05T17:09:17Z")

</div>

Thanks, that helped.

---

<div class="post-metadata">

### Author: ![xavierleroy](https://avatars.discourse-cdn.com/v4/letter/x/a9adbd/32.png) [@xavierleroy](https://discuss.ocaml.org/u/xavierleroy)
#### Post date: [November 6, 2022, 11:19am UTC](https://discuss.ocaml.org/t/assertions-involving-nan/10762/4 "2022-11-06T11:19:56Z")

</div>

You can also use `Float.compare x y = 0` instead of `x = y`. `Float.compare` compares NaNs equal and Nan and non-NaN different.
