Skip to main content

nanvm_lib/vm/number/
add.rs

1use core::ops::Add;
2
3use crate::vm::Number;
4
5impl Add for Number {
6    type Output = Self;
7    fn add(self, rhs: Self) -> Self {
8        (self.0 + rhs.0).into()
9    }
10}
11
12#[cfg(test)]
13mod tests {
14    use crate::vm::{Number, number::tests::bits};
15
16    /// `NaN + 0` is the canonical `NaN`, whatever bits the hardware gave it.
17    #[test]
18    fn nan_is_canonical() {
19        let nan = Number::from(f64::NAN);
20        assert_eq!(bits(nan + Number::from(0.0)), bits(Number::NAN));
21    }
22}