@@ -652,11 +652,41 @@ impl std::str::FromStr for Bn254FieldElement {
652652
653653#[ cfg( test) ]
654654mod tests {
655- use std:: str:: FromStr ;
655+ #[ cfg( feature = "proptest" ) ]
656+ mod proptests {
657+ use std:: str:: FromStr ;
658+
659+ use num_bigint:: BigUint ;
660+ use proptest:: prelude:: * ;
661+ use test_strategy:: proptest;
662+
663+ use super :: * ;
664+
665+ #[ proptest]
666+ fn dont_crash_on_large_inputs (
667+ #[ strategy( proptest:: collection:: vec( any:: <u8 >( ) , 33 ..1024 ) ) ] bytes : Vec < u8 > ,
668+ ) {
669+ let big_int = BigUint :: from_bytes_be ( & bytes) ;
670+ let radix10 = big_int. to_str_radix ( 10 ) ;
671+
672+ // doesn't crash
673+ let _ = Bn254FieldElement :: from_str ( & radix10) ;
674+ }
675+
676+ #[ proptest]
677+ fn valid_address_seeds (
678+ #[ strategy( proptest:: collection:: vec( any:: <u8 >( ) , 1 ..=32 ) ) ] bytes : Vec < u8 > ,
679+ ) {
680+ let big_int = BigUint :: from_bytes_be ( & bytes) ;
681+ let radix10 = big_int. to_str_radix ( 10 ) ;
682+
683+ let seed = Bn254FieldElement :: from_str ( & radix10) . unwrap ( ) ;
684+ assert_eq ! ( radix10, seed. to_string( ) ) ;
685+ // Ensure unpadded doesn't crash
686+ seed. unpadded ( ) ;
687+ }
688+ }
656689
657- use num_bigint:: BigUint ;
658- use proptest:: prelude:: * ;
659- use test_strategy:: proptest;
660690 #[ cfg( target_arch = "wasm32" ) ]
661691 use wasm_bindgen_test:: wasm_bindgen_test as test;
662692
@@ -672,30 +702,6 @@ mod tests {
672702 seed. 0 [ 0 ] = 0 ;
673703 assert_eq ! ( seed. unpadded( ) , [ 1 ; 31 ] . as_slice( ) ) ;
674704 }
675-
676- #[ proptest]
677- fn dont_crash_on_large_inputs (
678- #[ strategy( proptest:: collection:: vec( any:: <u8 >( ) , 33 ..1024 ) ) ] bytes : Vec < u8 > ,
679- ) {
680- let big_int = BigUint :: from_bytes_be ( & bytes) ;
681- let radix10 = big_int. to_str_radix ( 10 ) ;
682-
683- // doesn't crash
684- let _ = Bn254FieldElement :: from_str ( & radix10) ;
685- }
686-
687- #[ proptest]
688- fn valid_address_seeds (
689- #[ strategy( proptest:: collection:: vec( any:: <u8 >( ) , 1 ..=32 ) ) ] bytes : Vec < u8 > ,
690- ) {
691- let big_int = BigUint :: from_bytes_be ( & bytes) ;
692- let radix10 = big_int. to_str_radix ( 10 ) ;
693-
694- let seed = Bn254FieldElement :: from_str ( & radix10) . unwrap ( ) ;
695- assert_eq ! ( radix10, seed. to_string( ) ) ;
696- // Ensure unpadded doesn't crash
697- seed. unpadded ( ) ;
698- }
699705}
700706
701707#[ cfg( feature = "serde" ) ]
0 commit comments