Skip to content

Commit 4177e69

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

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-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: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -863,4 +863,41 @@ mod tests {
863863
})
864864
);
865865
}
866+
867+
// This could be run also on 32-bit when deserialization is implemented.
868+
#[cfg(all(feature = "serde", target_pointer_width = "64"))]
869+
#[test]
870+
fn test_uniform_usize_deserialization() {
871+
use serde_json;
872+
let original = UniformUsize::new_inclusive(10, 100).expect("creation");
873+
let serialized = serde_json::to_string(&original).expect("serialization");
874+
let deserialized: UniformUsize =
875+
serde_json::from_str(&serialized).expect("deserialization");
876+
assert_eq!(deserialized, original);
877+
}
878+
879+
#[cfg(all(feature = "serde", target_pointer_width = "64"))]
880+
#[test]
881+
fn test_uniform_usize_deserialization_from_32bit() {
882+
use serde_json;
883+
let serialized_on_32bit = r#"{"low":10,"range":91,"thresh":74}"#;
884+
let deserialized: UniformUsize =
885+
serde_json::from_str(&serialized_on_32bit).expect("deserialization");
886+
assert_eq!(
887+
deserialized,
888+
UniformUsize::new_inclusive(10, 100).expect("creation")
889+
);
890+
}
891+
892+
#[cfg(all(feature = "serde", target_pointer_width = "64"))]
893+
#[test]
894+
fn test_uniform_usize_deserialization_64bit() {
895+
use serde_json;
896+
let original = UniformUsize::new_inclusive(1, u64::MAX as usize - 1).expect("creation");
897+
assert!(original.mode64);
898+
let serialized = serde_json::to_string(&original).expect("serialization");
899+
let deserialized: UniformUsize =
900+
serde_json::from_str(&serialized).expect("deserialization");
901+
assert_eq!(deserialized, original);
902+
}
866903
}

0 commit comments

Comments
 (0)