Skip to content

Commit b456cd3

Browse files
committed
Add unit tests for UniformUsize (de)serialization
1 parent d1343fc commit b456cd3

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,4 @@ rand_pcg = { path = "rand_pcg", version = "0.9.0" }
8181
# Only to test serde
8282
bincode = "1.2.1"
8383
rayon = "1.7"
84+
serde_json = "1.0.140"

src/distr/uniform_int.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -863,4 +863,40 @@ mod tests {
863863
})
864864
);
865865
}
866+
867+
#[cfg(feature = "serde")]
868+
#[test]
869+
fn test_uniform_usize_deserialization() {
870+
use serde_json;
871+
let original = UniformUsize::new_inclusive(10, 100).expect("creation");
872+
let serialized = serde_json::to_string(&original).expect("serialization");
873+
let deserialized: UniformUsize =
874+
serde_json::from_str(&serialized).expect("deserialization");
875+
assert_eq!(deserialized, original);
876+
}
877+
878+
#[cfg(all(feature = "serde", target_pointer_width = "64"))]
879+
#[test]
880+
fn test_uniform_usize_deserialization_from_32bit() {
881+
use serde_json;
882+
let serialized_on_32bit = r#"{"low":10,"range":91,"thresh":74}"#;
883+
let deserialized: UniformUsize =
884+
serde_json::from_str(&serialized_on_32bit).expect("deserialization");
885+
assert_eq!(
886+
deserialized,
887+
UniformUsize::new_inclusive(10, 100).expect("creation")
888+
);
889+
}
890+
891+
#[cfg(all(feature = "serde", target_pointer_width = "64"))]
892+
#[test]
893+
fn test_uniform_usize_deserialization_64bit() {
894+
use serde_json;
895+
let original = UniformUsize::new_inclusive(1, u64::MAX as usize - 1).expect("creation");
896+
assert!(original.mode64);
897+
let serialized = serde_json::to_string(&original).expect("serialization");
898+
let deserialized: UniformUsize =
899+
serde_json::from_str(&serialized).expect("deserialization");
900+
assert_eq!(deserialized, original);
901+
}
866902
}

0 commit comments

Comments
 (0)