extern crate core;
use webweg::util;
#[test]
fn test_parse_day_code_simple() {
assert_eq!(["Su", "M", "W"].as_slice(), &util::parse_day_code("013"));
}
#[test]
fn test_parse_day_code_all() {
assert_eq!(
["Su", "M", "Tu", "W", "Th", "F", "Sa"].as_slice(),
&util::parse_day_code("0123456")
);
}
#[test]
fn test_parse_day_code_none() {
assert!(util::parse_day_code("").is_empty());
}
#[test]
fn test_parse_day_code_out_bounds() {
assert_eq!(
["Su", "F", "M", "Tu"].as_slice(),
&util::parse_day_code("051928")
);
}
#[test]
fn test_parse_binary_days_simple() {
assert_eq!(
["M", "W", "F", "Su"].as_slice(),
&util::parse_binary_days("1010101")
);
}
#[test]
fn test_parse_binary_days_all() {
assert_eq!(
["M", "Tu", "W", "Th", "F", "Sa", "Su"].as_slice(),
&util::parse_binary_days("1111111")
);
}
#[test]
fn test_parse_binary_days_none() {
assert!(util::parse_binary_days("0000000").is_empty());
}
#[test]
fn test_term_seq_id_base() {
assert_eq!(5200, util::get_term_seq_id("SP22"));
assert_eq!(5210, util::get_term_seq_id("S122"));
assert_eq!(5220, util::get_term_seq_id("S222"));
assert_eq!(5230, util::get_term_seq_id("S322"));
assert_eq!(5250, util::get_term_seq_id("FA22"));
assert_eq!(5260, util::get_term_seq_id("WI23"));
}
#[test]
fn test_term_seq_id_one_year() {
assert_eq!(5270, util::get_term_seq_id("SP23"));
assert_eq!(5340, util::get_term_seq_id("SP24"));
assert_eq!(5330, util::get_term_seq_id("WI24"));
assert_eq!(5320, util::get_term_seq_id("FA23"));
assert_eq!(5300, util::get_term_seq_id("S323"));
assert_eq!(5290, util::get_term_seq_id("S223"));
assert_eq!(5280, util::get_term_seq_id("S123"));
assert_eq!(5190, util::get_term_seq_id("WI22"));
}
#[test]
fn test_term_seq_id_invalid() {
assert_eq!(0, util::get_term_seq_id("XX24"));
assert_eq!(0, util::get_term_seq_id("WI2T"));
}
#[test]
fn test_format_course_code() {
assert_eq!(" 8B", util::get_formatted_course_num("8B"));
assert_eq!(" 1", util::get_formatted_course_num("1"));
assert_eq!(" 15L", util::get_formatted_course_num("15L"));
assert_eq!(" 12", util::get_formatted_course_num("12"));
assert_eq!("158R", util::get_formatted_course_num("158R"));
assert_eq!("101", util::get_formatted_course_num("101"));
assert_eq!("MATH", util::get_formatted_course_num("MATH"));
}
#[test]
fn test_format_multiple_courses_full() {
assert_eq!(
"CSE: 8B;CSE: 95;MATH:100A",
util::format_multiple_courses(&["CSE 8B", "CSE 95", "MATH 100A"])
);
assert_eq!(
"CSE:101;MATH:170A;MATH: 20D;MATH:187A;CSE: 11;POLI:102D;POLI:112A;COGS: 9",
util::format_multiple_courses(&[
"CSE 101",
"MATH 170A",
"math 20d",
"MATH 187A",
"cse 11",
"POLI 102D",
"poli 112a",
"cogs 9"
])
);
assert_eq!(
"CSE:101;MATH: 20D;MATH:187A;CSE: 11;POLI:102D;POLI:112A;COGS: 9",
util::format_multiple_courses(&[
"CSE 101",
"math20d",
"MATH187A",
"cse 11",
"POLI102D",
"poli 112a",
"cogs9"
])
)
}
#[test]
fn test_format_multiple_courses_subj() {
assert_eq!(
"CSE;CSE;MATH",
util::format_multiple_courses(&["CSE", "CSE", "MATH"])
);
assert_eq!(
"COGS;CSE;MATH;POLI;HIST",
util::format_multiple_courses(&["cogs", "CSE", "Math", "Poli", "hist"])
);
}
#[test]
fn test_format_multiple_courses_num() {
assert_eq!(
"105;101; 30;108; 8A; 5",
util::format_multiple_courses(&["105", "101", "30", "108", "8A", "5"])
);
assert_eq!(
" 95; 1; 8B;190A;101; 15L;105;171; 30",
util::format_multiple_courses(&["95", "1", "8B", "190A", "101", "15L", "105", "171", "30"])
);
}
#[test]
fn test_format_multiple_courses_mixed() {
assert_eq!("", util::format_multiple_courses([].as_slice() as &[&str]));
assert_eq!(
" 8A;CSE: 12",
util::format_multiple_courses(&["8a", "", "cse12"])
);
assert_eq!(
"CSE:101;105;COGS: 10; 8",
util::format_multiple_courses(&["cse 101", "105", "cogs 10", "8"])
);
assert_eq!(
"MATH: 20;CSE: 95;COGS:100;MATH: 10",
util::format_multiple_courses(&["math 20", "cse95", "cogs100", "math10"])
)
}