@@ -274,6 +274,39 @@ mod test {
274
274
Felt ,
275
275
} ;
276
276
277
+ #[ test]
278
+ fn from_qm31_to_felt ( ) {
279
+ let felt_expected = Felt :: from ( 2i128 . pow ( 126 ) ) ;
280
+ let qm31: QM31Felt = felt_expected. try_into ( ) . unwrap ( ) ;
281
+ let felt = qm31. into ( ) ;
282
+
283
+ assert_eq ! ( qm31, felt) ;
284
+
285
+ let felt_expected = Felt :: from ( 2i64 . pow ( 62 ) ) ;
286
+ let qm31: QM31Felt = felt_expected. try_into ( ) . unwrap ( ) ;
287
+ let felt = qm31. into ( ) ;
288
+
289
+ assert_eq ! ( qm31, felt) ;
290
+
291
+ let felt_expected = Felt :: from ( 2i32 . pow ( 30 ) ) ;
292
+ let qm31: QM31Felt = felt_expected. try_into ( ) . unwrap ( ) ;
293
+ let felt = qm31. into ( ) ;
294
+
295
+ assert_eq ! ( qm31, felt) ;
296
+
297
+ let felt_expected = Felt :: from ( 2i8 . pow ( 6 ) ) ;
298
+ let qm31: QM31Felt = felt_expected. try_into ( ) . unwrap ( ) ;
299
+ let felt = qm31. into ( ) ;
300
+
301
+ assert_eq ! ( qm31, felt) ;
302
+
303
+ let felt_expected = Felt :: ZERO ;
304
+ let qm31: QM31Felt = felt_expected. try_into ( ) . unwrap ( ) ;
305
+ let felt = qm31. into ( ) ;
306
+
307
+ assert_eq ! ( qm31, felt) ;
308
+ }
309
+
277
310
#[ test]
278
311
fn qm31_packed_reduced_coordinates_over_144_bits ( ) {
279
312
let mut felt_bytes = [ 0u8 ; 32 ] ;
0 commit comments