exercism/rust/prime-factors/tests/prime_factors.rs

85 lines
1.6 KiB
Rust

use prime_factors::*;
#[test]
fn no_factors() {
let factors = factors(1);
let expected = [];
assert_eq!(factors, expected);
}
#[test]
fn prime_number() {
let factors = factors(2);
let expected = [2];
assert_eq!(factors, expected);
}
#[test]
fn another_prime_number() {
let factors = factors(3);
let expected = [3];
assert_eq!(factors, expected);
}
#[test]
fn square_of_a_prime() {
let factors = factors(9);
let expected = [3, 3];
assert_eq!(factors, expected);
}
#[test]
fn product_of_first_prime() {
let factors = factors(4);
let expected = [2, 2];
assert_eq!(factors, expected);
}
#[test]
fn cube_of_a_prime() {
let factors = factors(8);
let expected = [2, 2, 2];
assert_eq!(factors, expected);
}
#[test]
fn product_of_second_prime() {
let factors = factors(27);
let expected = [3, 3, 3];
assert_eq!(factors, expected);
}
#[test]
fn product_of_third_prime() {
let factors = factors(625);
let expected = [5, 5, 5, 5];
assert_eq!(factors, expected);
}
#[test]
fn product_of_first_and_second_prime() {
let factors = factors(6);
let expected = [2, 3];
assert_eq!(factors, expected);
}
#[test]
fn product_of_primes_and_non_primes() {
let factors = factors(12);
let expected = [2, 2, 3];
assert_eq!(factors, expected);
}
#[test]
fn product_of_primes() {
let factors = factors(901_255);
let expected = [5, 17, 23, 461];
assert_eq!(factors, expected);
}
#[test]
fn factors_include_a_large_prime() {
let factors = factors(93_819_012_551);
let expected = [11, 9_539, 894_119];
assert_eq!(factors, expected);
}