Compare commits
2 Commits
23c8dd694f
...
9a7e303ed8
| Author | SHA1 | Date | |
|---|---|---|---|
| 9a7e303ed8 | |||
| 6894d250dd |
23
src/main.rs
23
src/main.rs
@@ -80,12 +80,15 @@ fn main() {
|
||||
} else {
|
||||
let mut cand_gen = CandidateGenerator::new();
|
||||
|
||||
while primes_list.borrow().len() < opts.num as usize {
|
||||
loop {
|
||||
let cand = cand_gen.next();
|
||||
let mut is_prime = true;
|
||||
if opts.test && cand > opts.num {
|
||||
break;
|
||||
}
|
||||
|
||||
for i in primes_list.borrow().iter() {
|
||||
if cand % *i == 0 {
|
||||
let mut is_prime = true;
|
||||
for p in primes_list.borrow().iter() {
|
||||
if cand % *p == 0 {
|
||||
is_prime = false;
|
||||
break;
|
||||
}
|
||||
@@ -96,10 +99,20 @@ fn main() {
|
||||
if opts.verbose {
|
||||
println!("{}", cand);
|
||||
}
|
||||
|
||||
if !opts.test && primes_list.borrow().len() == opts.num as usize {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if !opts.verbose {
|
||||
if opts.test {
|
||||
if *primes_list.borrow().back().unwrap() == opts.num {
|
||||
process::exit(0)
|
||||
} else {
|
||||
process::exit(1)
|
||||
}
|
||||
} else if !opts.verbose {
|
||||
let last_prime = *primes_list.borrow().back().unwrap();
|
||||
println!("{}", last_prime);
|
||||
}
|
||||
|
||||
42
test.sh
42
test.sh
@@ -1,28 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo -n "Prime finding..."
|
||||
if [[ $(./target/release/indivisible 5) == 11 ]]
|
||||
DEBUG_BIN="./target/debug/indivisible"
|
||||
RELEASE_BIN="./target/release/indivisible"
|
||||
|
||||
if [ -f "$DEBUG_BIN" ]
|
||||
then
|
||||
echo " pass"
|
||||
BINARY="$DEBUG_BIN"
|
||||
elif [ -f "$RELEASE_BIN" ]
|
||||
then
|
||||
BINARY="$RELEASE_BIN"
|
||||
else
|
||||
echo " FAIL"
|
||||
>&2 echo "No valid binary found. Please compile the project."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -n "Positive prime test..."
|
||||
if ./target/release/indivisible -t 11
|
||||
tests=0
|
||||
passed=0
|
||||
|
||||
((tests++))
|
||||
echo -n "${tests}: Find 5th prime number..."
|
||||
if [[ $("$BINARY" 5) == 11 ]]
|
||||
then
|
||||
echo " pass"
|
||||
((passed++))
|
||||
else
|
||||
echo " FAIL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -n "Negative prime test..."
|
||||
if ! ./target/release/indivisible -t 9
|
||||
((tests++))
|
||||
echo -n "${tests}: 11 is prime..."
|
||||
if "$BINARY" -t 11
|
||||
then
|
||||
echo " pass"
|
||||
((passed++))
|
||||
else
|
||||
echo " FAIL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
((tests++))
|
||||
echo -n "${tests}: 9 is not prime..."
|
||||
if ! "$BINARY" -t 9
|
||||
then
|
||||
echo " pass"
|
||||
((passed++))
|
||||
else
|
||||
echo " FAIL"
|
||||
fi
|
||||
|
||||
echo "Results: $passed/$tests"
|
||||
|
||||
Reference in New Issue
Block a user