mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-06 02:17:34 -08:00
54 lines
958 B
Bash
Executable File
54 lines
958 B
Bash
Executable File
#!/bin/bash
|
|
# Copyright 2020-2021 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
source tests-common.sh || exit
|
|
|
|
inherit qmail
|
|
|
|
# some numbers are blocked because they are to small even if prime
|
|
test_low_numbers() {
|
|
tbegin "low numbers"
|
|
|
|
for i in $(seq 0 6); do
|
|
if is_prime ${i}; then
|
|
tend 1 "${i} badly accepted"
|
|
return
|
|
fi
|
|
done
|
|
|
|
tend 0
|
|
}
|
|
|
|
# test a given number for being prime
|
|
check_prime_number() {
|
|
# use factor from coreutils to count the factors
|
|
if [[ $(factor $1 | cut -d: -f2 | wc -w) == 1 ]]; then
|
|
return $(is_prime $1)
|
|
else
|
|
return $(is_prime $1 && false || true)
|
|
fi
|
|
}
|
|
|
|
test_primes() {
|
|
tbegin "factorizations from ${1} to ${2}"
|
|
|
|
for i in $(seq ${1:?} ${2:?}); do
|
|
if ! check_prime_number $i; then
|
|
tend 1 "${i} returned bad factorization"
|
|
return 1
|
|
fi
|
|
done
|
|
|
|
tend 0
|
|
}
|
|
|
|
test_low_numbers
|
|
test_primes 7 99
|
|
for i in $(seq 100 100 1000); do
|
|
test_primes $i $((i + 99))
|
|
done
|
|
|
|
texit
|