use crate::misc;
pub(crate) mod data;
pub fn full() -> String {
misc::random_data(data::FULL).to_string()
}
pub fn hex() -> String {
let mut rand: [&'static str; 6] = [
misc::HASHTAG,
misc::HASHTAG,
misc::HASHTAG,
misc::HASHTAG,
misc::HASHTAG,
misc::HASHTAG,
];
#[allow(clippy::needless_range_loop)]
for x in 0..5 {
match misc::random::<i8>(0, 1) {
0 => rand[x] = misc::HASHTAG,
1 => rand[x] = misc::QUESTIONMARK,
_ => println!("impossible"),
}
}
format!(
"#{}",
misc::replace_with_letter_hex(misc::replace_with_numbers(rand.join("")))
)
}
pub fn safe() -> String {
misc::random_data(data::SAFE).to_string()
}
pub fn rgb() -> [i16; 3] {
[
misc::random::<i16>(0, 255),
misc::random::<i16>(0, 255),
misc::random::<i16>(0, 255),
]
}
#[cfg(test)]
mod tests {
use crate::colour;
use crate::testify::exec_mes;
#[test]
fn full() {
exec_mes("colour::full", colour::full);
}
#[test]
fn hex() {
exec_mes("colour::hex", colour::hex);
}
#[test]
fn safe() {
exec_mes("colour::safe", colour::safe);
}
#[test]
fn rgb() {
exec_mes("colour::rgb", || format!("{:?}", colour::rgb()));
}
}