Skip to content

Commit a629ff0

Browse files
authored
Merge pull request #136 from rust-lang-ja/fix/convolution-tests
2 parents 33dc514 + f8df397 commit a629ff0

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/convolution.rs

+12-7
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ mod tests {
276276
modulus!(M1, M2);
277277

278278
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);
280280
for (n, m) in (1..20).flat_map(|i| (1..20).map(move |j| (i, j))) {
281281
let (a, b) = (gen_values(n), gen_values(m));
282282
assert_eq!(conv_naive(&a, &b), super::convolution(&a, &b));
@@ -326,7 +326,7 @@ mod tests {
326326

327327
fn simple_raw<T>()
328328
where
329-
T: TryFrom<u32> + Copy + RemEuclidU32,
329+
T: TryFrom<u32> + Copy + RemEuclidU32 + Eq,
330330
T::Error: fmt::Debug,
331331
{
332332
const M1: u32 = 998_244_353;
@@ -336,16 +336,21 @@ mod tests {
336336

337337
fn test<T, M>(rng: &mut ThreadRng)
338338
where
339-
T: TryFrom<u32> + Copy + RemEuclidU32,
339+
T: TryFrom<u32> + Copy + RemEuclidU32 + Eq,
340340
T::Error: fmt::Debug,
341341
M: Modulus,
342342
{
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+
};
344349
for (n, m) in (1..20).flat_map(|i| (1..20).map(move |j| (i, j))) {
345350
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",
349354
);
350355
}
351356
}

0 commit comments

Comments
 (0)