From c5c86b00e99e80e4f62ce53f529d3179c221fa37 Mon Sep 17 00:00:00 2001 From: nicoo Date: Tue, 23 Jun 2020 16:11:47 +0200 Subject: [PATCH] factor::miller_rabin: Add tests reproducing #1556 --- src/uu/factor/src/miller_rabin.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/uu/factor/src/miller_rabin.rs b/src/uu/factor/src/miller_rabin.rs index f000485c7..b8593d524 100644 --- a/src/uu/factor/src/miller_rabin.rs +++ b/src/uu/factor/src/miller_rabin.rs @@ -108,4 +108,23 @@ mod tests { } assert!(is_prime(NEXT_PRIME)); } + + #[test] + fn issue_1556() { + // 10 425 511 = 2441 × 4271 + assert!(!is_prime(10_425_511)); + } + + #[test] + fn small_composites() { + use crate::table::P_INVS_U64; + + for i in 0..P_INVS_U64.len() { + let (p, _, _) = P_INVS_U64[i]; + for (q, _, _) in &P_INVS_U64[0..i] { + let n = p * q; + assert!(!is_prime(n), "{} = {} × {} reported prime", n, p, q); + } + } + } }