#[cfg(test)]
mod precision_tests {
use crate::base::math::decimal::Precision;
use serde_json;
#[test]
fn we_can_deserialize_valid_precision() {
let json = "50"; let precision: Result<Precision, _> = serde_json::from_str(json);
assert!(precision.is_ok());
assert_eq!(precision.unwrap().value(), 50);
}
#[test]
fn we_can_deserialize_valid_precision_inclusive() {
let json = "75"; let precision: Result<Precision, _> = serde_json::from_str(json);
assert!(precision.is_ok());
assert_eq!(precision.unwrap().value(), 75);
}
#[test]
fn we_cannot_deserialize_invalid_precision() {
let json = "76"; let precision: Result<Precision, _> = serde_json::from_str(json);
assert!(precision.is_err());
}
#[test]
fn we_cannot_deserialize_non_numeric_precision() {
let json = "\"not a number\"";
let precision: Result<Precision, _> = serde_json::from_str(json);
assert!(precision.is_err());
}
}