#[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::("42"), Ok(42_i8)); assert_eq!(parse_number::("42"), Ok(42_i16)); assert_eq!(parse_number::("42"), Ok(42_i32)); assert_eq!(parse_number::("42"), Ok(42_i64)); assert_eq!(parse_number::("42"), Ok(42_i128)); assert_eq!(parse_number::("42"), Ok(42_isize)); assert_eq!(parse_number::("42"), Ok(42_u8)); assert_eq!(parse_number::("42"), Ok(42_u16)); assert_eq!(parse_number::("42"), Ok(42_u32)); assert_eq!(parse_number::("42"), Ok(42_u64)); assert_eq!(parse_number::("42"), Ok(42_u128)); assert_eq!(parse_number::("42"), Ok(42_usize)); assert_eq!(parse_number::("42"), Ok(42_f32)); assert_eq!(parse_number::("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::(numbers), Ok(Vec::from([1,2,3,4]))); assert_eq!(parse_list::(names), Ok(Vec::from(["Alice".to_string(), "Bob".to_string(), "Charlie".to_string()]))); assert_eq!(parse_list::(bools), Ok(Vec::from([true, false, true, false]))); assert_eq!(parse_list::(floats), Ok(Vec::from([3.14, 2.718, 1.618]))); } }