diff --git a/utilities/src/fixed_128.rs b/utilities/src/fixed_128.rs index 601d5dacb30abcd77d3e1d00fed5fb066ffbf4df..2f215548115a676cd3c48737177869d7b5930207 100644 --- a/utilities/src/fixed_128.rs +++ b/utilities/src/fixed_128.rs @@ -185,6 +185,14 @@ impl Fixed128 { *self } } + + pub fn is_positive(&self) -> bool { + self.0.is_positive() + } + + pub fn is_negative(&self) -> bool { + self.0.is_negative() + } } impl Saturating for Fixed128 { @@ -553,4 +561,19 @@ mod tests { // saturating assert_eq!(Fixed128::min_value().saturating_abs(), Fixed128::max_value()); } + + #[test] + fn is_positive_negative_should_work() { + let positive = Fixed128::from_parts(1); + assert!(positive.is_positive()); + assert!(!positive.is_negative()); + + let negative = Fixed128::from_parts(-1); + assert!(!negative.is_positive()); + assert!(negative.is_negative()); + + let zero = Fixed128::zero(); + assert!(!zero.is_positive()); + assert!(!zero.is_negative()); + } }