@@ -863,4 +863,40 @@ mod tests {
863
863
} )
864
864
) ;
865
865
}
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
+ }
866
902
}
0 commit comments