Files
envkit/tests/test_parser.rs
T
2026-06-08 05:39:49 -04:00

53 lines
2.1 KiB
Rust

#[cfg(test)]
mod test_parser {
use envkit::parser::parse_bool;
use envkit::parser::parse_number;
use envkit::parser::parse_list;
#[test]
/// Tests for the `parse_bool` function.
fn test_parse_bool() {
assert_eq!(parse_bool("true"), Ok(true));
assert_eq!(parse_bool("false"), Ok(false));
assert_eq!(parse_bool("1"), Ok(true));
assert_eq!(parse_bool("0"), Ok(false));
assert_eq!(parse_bool("t"), Ok(true));
assert_eq!(parse_bool("f"), Ok(false));
assert_eq!(parse_bool("yes"), Ok(true));
assert_eq!(parse_bool("no"), Ok(false));
}
#[test]
/// Tests for the `parse_number` function.
fn test_parse_number() {
assert_eq!(parse_number::<i8>("42"), Ok(42_i8));
assert_eq!(parse_number::<i16>("42"), Ok(42_i16));
assert_eq!(parse_number::<i32>("42"), Ok(42_i32));
assert_eq!(parse_number::<i64>("42"), Ok(42_i64));
assert_eq!(parse_number::<i128>("42"), Ok(42_i128));
assert_eq!(parse_number::<isize>("42"), Ok(42_isize));
assert_eq!(parse_number::<u8>("42"), Ok(42_u8));
assert_eq!(parse_number::<u16>("42"), Ok(42_u16));
assert_eq!(parse_number::<u32>("42"), Ok(42_u32));
assert_eq!(parse_number::<u64>("42"), Ok(42_u64));
assert_eq!(parse_number::<u128>("42"), Ok(42_u128));
assert_eq!(parse_number::<usize>("42"), Ok(42_usize));
assert_eq!(parse_number::<f32>("42"), Ok(42_f32));
assert_eq!(parse_number::<f64>("42"), Ok(42_f64));
}
#[test]
/// Tests for the `parse_list` function.
fn test_parse_list() {
let numbers = "1,2,3,4";
let names = "Alice, Bob, Charlie";
let bools = "true, false, yes, no";
let floats = "3.14, 2.718, 1.618";
assert_eq!(parse_list::<u8>(numbers), Ok(Vec::from([1,2,3,4])));
assert_eq!(parse_list::<String>(names), Ok(Vec::from(["Alice".to_string(), "Bob".to_string(), "Charlie".to_string()])));
assert_eq!(parse_list::<bool>(bools), Ok(Vec::from([true, false, true, false])));
assert_eq!(parse_list::<f64>(floats), Ok(Vec::from([3.14, 2.718, 1.618])));
}
}