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