@@ -276,7 +276,7 @@ mod tests {
276
276
modulus ! ( M1 , M2 ) ;
277
277
278
278
fn test < M : Modulus > ( rng : & mut ThreadRng ) {
279
- let mut gen_values = |n| gen_values :: < Mod998244353 > ( rng, n) ;
279
+ let mut gen_values = |n| gen_values :: < M > ( rng, n) ;
280
280
for ( n, m) in ( 1 ..20 ) . flat_map ( |i| ( 1 ..20 ) . map ( move |j| ( i, j) ) ) {
281
281
let ( a, b) = ( gen_values ( n) , gen_values ( m) ) ;
282
282
assert_eq ! ( conv_naive( & a, & b) , super :: convolution( & a, & b) ) ;
@@ -326,7 +326,7 @@ mod tests {
326
326
327
327
fn simple_raw < T > ( )
328
328
where
329
- T : TryFrom < u32 > + Copy + RemEuclidU32 ,
329
+ T : TryFrom < u32 > + Copy + RemEuclidU32 + Eq ,
330
330
T :: Error : fmt:: Debug ,
331
331
{
332
332
const M1 : u32 = 998_244_353 ;
@@ -336,16 +336,21 @@ mod tests {
336
336
337
337
fn test < T , M > ( rng : & mut ThreadRng )
338
338
where
339
- T : TryFrom < u32 > + Copy + RemEuclidU32 ,
339
+ T : TryFrom < u32 > + Copy + RemEuclidU32 + Eq ,
340
340
T :: Error : fmt:: Debug ,
341
341
M : Modulus ,
342
342
{
343
- let mut gen_raw_values = |n| gen_raw_values :: < u32 , Mod998244353 > ( rng, n) ;
343
+ let mut gen_raw_values = |n| {
344
+ gen_raw_values :: < u32 , M > ( rng, n)
345
+ . into_iter ( )
346
+ . map ( |x| x. try_into ( ) . unwrap ( ) )
347
+ . collect :: < Vec < T > > ( )
348
+ } ;
344
349
for ( n, m) in ( 1 ..20 ) . flat_map ( |i| ( 1 ..20 ) . map ( move |j| ( i, j) ) ) {
345
350
let ( a, b) = ( gen_raw_values ( n) , gen_raw_values ( m) ) ;
346
- assert_eq ! (
347
- conv_raw_naive:: <_ , M >( & a, & b) ,
348
- super :: convolution_raw :: <_ , M > ( & a , & b ) ,
351
+ assert ! (
352
+ conv_raw_naive:: <T , M > ( & a , & b ) == super :: convolution_raw :: < T , M >( & a, & b) ,
353
+ "values don't match" ,
349
354
) ;
350
355
}
351
356
}
0 commit comments