@@ -196,26 +196,21 @@ impl PrimeField for FieldElement {
196
196
mod tests {
197
197
use super :: FieldElement ;
198
198
use crate :: { FieldBytes , test_vectors:: field:: DBL_TEST_VECTORS } ;
199
- use core:: ops:: Mul ;
200
199
201
200
#[ cfg( target_pointer_width = "64" ) ]
202
201
use crate :: U256 ;
203
202
#[ cfg( target_pointer_width = "64" ) ]
204
203
use proptest:: { num:: u64:: ANY , prelude:: * } ;
205
204
206
- # [ test ]
207
- fn zero_is_additive_identity ( ) {
208
- let zero = FieldElement :: ZERO ;
209
- let one = FieldElement :: ONE ;
210
- assert_eq ! ( zero . add ( & zero ) , zero ) ;
211
- assert_eq ! ( one . add ( & zero ) , one ) ;
212
- }
205
+ /// t = (modulus - 1) >> S
206
+ const T : [ u64 ; 4 ] = [
207
+ 0xffffffffffffffff ,
208
+ 0x000000007fffffff ,
209
+ 0x8000000000000000 ,
210
+ 0x7fffffff80000000 ,
211
+ ] ;
213
212
214
- #[ test]
215
- fn one_is_multiplicative_identity ( ) {
216
- let one = FieldElement :: ONE ;
217
- assert_eq ! ( one. mul( & one) , one) ;
218
- }
213
+ primefield:: test_primefield!( FieldElement , T ) ;
219
214
220
215
#[ test]
221
216
fn from_bytes ( ) {
@@ -295,26 +290,6 @@ mod tests {
295
290
assert_eq ! ( two. pow_vartime( & [ 2 , 0 , 0 , 0 ] ) , four) ;
296
291
}
297
292
298
- #[ test]
299
- fn invert ( ) {
300
- assert ! ( bool :: from( FieldElement :: ZERO . invert( ) . is_none( ) ) ) ;
301
-
302
- let one = FieldElement :: ONE ;
303
- assert_eq ! ( one. invert( ) . unwrap( ) , one) ;
304
-
305
- let two = one + & one;
306
- let inv_two = two. invert ( ) . unwrap ( ) ;
307
- assert_eq ! ( two * & inv_two, one) ;
308
- }
309
-
310
- #[ test]
311
- fn sqrt ( ) {
312
- let one = FieldElement :: ONE ;
313
- let two = one + & one;
314
- let four = two. square ( ) ;
315
- assert_eq ! ( four. sqrt( ) . unwrap( ) , two) ;
316
- }
317
-
318
293
#[ cfg( target_pointer_width = "64" ) ]
319
294
proptest ! {
320
295
/// This checks behaviour well within the field ranges, because it doesn't set the
0 commit comments