rateslib/dual/dual_ops/
one.rs1use 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}