rateslib/dual/dual_ops/
one.rs

1use crate::dual::dual::{Dual, Dual2};
2use crate::dual::enums::Number;
3use num_traits::One;
4
5impl One for Dual {
6    fn one() -> Dual {
7        Dual::new(1.0, Vec::new())
8    }
9}
10
11impl One for Dual2 {
12    fn one() -> Dual2 {
13        Dual2::new(1.0, Vec::new())
14    }
15}
16
17impl One for Number {
18    fn one() -> Number {
19        Number::F64(1.0_f64)
20    }
21}
22
23#[cfg(test)]
24mod tests {
25    use super::*;
26
27    #[test]
28    fn one() {
29        let d = Dual::one();
30        assert_eq!(d, Dual::new(1.0, vec![]));
31    }
32
33    #[test]
34    fn one2() {
35        let d = Dual2::one();
36        assert_eq!(d, Dual2::new(1.0, vec![]));
37    }
38
39    #[test]
40    fn one_enum() {
41        let d = Number::one();
42        assert_eq!(d, Number::F64(1.0));
43    }
44}