extern crate rusty_oge; use std::collections::HashMap; use rusty_oge::module9::*; #[macro_use] mod test_macros; fn to_map(raw_map: &[(&str, &[&str])]) -> HashMap> { let mut map = HashMap::new(); for (key, val) in raw_map { map.insert(key.to_string(), Vec::from_iter(val.iter().map(|s| s.to_string()))); } map } Test! { Name = problem16017, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["E", "V"]), ("V", &["E", "Z"]), ("G", &["Z", "J"]), ("D", &["G", "J"]), ("E", &["I", "L", "Z"]), ("Z", &["L"]), ("J", &["Z", "K", "L"]), ("I", &["L"]), ("K", &["L"]), ("L", &[]), ]), ("A", "L"), vec![], vec![]), Output = "22" } Test! { Name = problem18039, Input = (to_map(&[ ("A", &["B", "G"]), ("B", &["D", "K", "V"]), ("G", &["V", "K", "E"]), ("V", &["K"]), ("D", &["K"]), ("E", &["K"]), ("K", &[]), ]), ("A", "K"), vec![], vec![]), Output = "6" } Test! { Name = problem18248, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["E", "V"]), ("V", &["E", "Z"]), ("G", &["Z", "J"]), ("D", &["G", "J"]), ("E", &["I", "Z"]), ("Z", &["L"]), ("J", &["Z", "L", "K"]), ("I", &["L"]), ("K", &["L"]), ("L", &[]), ]), ("A", "L"), vec![], vec![]), Output = "19" } Test! { Name = problem18263, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["E", "V"]), ("V", &["E", "Z", "G"]), ("G", &["Z", "J"]), ("D", &["J"]), ("E", &["I", "Z", "L"]), ("Z", &["L"]), ("J", &["Z", "L", "K"]), ("I", &["L"]), ("K", &["L"]), ("L", &[]), ]), ("A", "L"), vec![], vec![]), Output = "26" } Test! { Name = problem18278, Input = (to_map(&[ ("A", &["B", "E", "G"]), ("B", &["C", "E"]), ("G", &["E", "H"]), ("E", &["C", "D", "F", "H"]), ("C", &["D"]), ("H", &["F"]), ("D", &[]), ("F", &["D"]), ]), ("A", "D"), vec![], vec![]), Output = "14" } Test! { Name = problem18293, Input = (to_map(&[ ("A", &["B", "E", "F"]), ("B", &["C", "D", "E"]), ("F", &["E", "G"]), ("E", &["D", "G"]), ("C", &["D"]), ("G", &["D", "H"]), ("H", &["D"]), ("D", &[]), ]), ("A", "D"), vec![], vec![]), Output = "13" } Test! { Name = problem35586, Input = (to_map(&[ ("A", &["D", "C", "E", "B"]), ("D", &["C", "E", "G"]), ("C", &["E"]), ("E", &["F", "G"]), ("B", &["E", "F"]), ("F", &["G"]), ("G", &[]), ]), ("A", "G"), vec![], vec![]), Output = "12" } Test! { Name = problem10244, Input = (to_map(&[ ("A", &["B", "V", "G"]), ("B", &["V", "D"]), ("V", &["D", "E", "J", "G"]), ("G", &["J"]), ("D", &["E", "K"]), ("E", &["K"]), ("J", &["K"]), ("K", &[]), ]), ("A", "K"), vec!["V".into()], vec![]), Output = "10" } Test! { Name = problem10245, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["V", "E"]), ("V", &["E", "J"]), ("G", &["V", "J"]), ("D", &["G", "J", "Z"]), ("E", &["J", "I"]), ("J", &["I"]), ("Z", &["J", "I"]), ("I", &[]), ]), ("A", "I"), vec!["V".into()], vec![]), Output = "12" } Test! { Name = problem10246, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["V", "E"]), ("V", &["E", "J", "Z"]), ("G", &["V", "Z"]), ("D", &["G", "Z"]), ("E", &["J", "I"]), ("J", &["I"]), ("Z", &["J", "I"]), ("I", &[]), ]), ("A", "I"), vec!["V".into()], vec![]), Output = "20" } Test! { Name = problem10247, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["V", "E", "J"]), ("V", &["J"]), ("G", &["V", "J"]), ("D", &["G", "J", "Z"]), ("E", &["J", "I"]), ("J", &["I"]), ("Z", &["J", "I"]), ("I", &[]), ]), ("A", "I"), vec!["J".into()], vec![]), Output = "10" } Test! { Name = problem10248, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["V", "E"]), ("V", &["J", "E"]), ("G", &["V", "J"]), ("D", &["G", "J", "Z"]), ("E", &["J", "I"]), ("J", &["I"]), ("Z", &["J", "I"]), ("I", &[]), ]), ("A", "I"), vec!["J".into()], vec![]), Output = "13" } Test! { Name = problem10249, Input = (to_map(&[ ("A", &["B", "V", "G"]), ("B", &["V", "D"]), ("V", &["G", "D", "E"]), ("G", &["E", "I"]), ("D", &["J", "E"]), ("E", &["J", "I"]), ("J", &["K"]), ("I", &["K"]), ("K", &[]), ]), ("A", "K"), vec!["D".into()], vec![]), Output = "9" } Test! { Name = problem10250, Input = (to_map(&[ ("A", &["B", "V", "G"]), ("B", &["V", "D"]), ("V", &["G", "D", "E"]), ("G", &["E", "I"]), ("D", &["J", "E"]), ("E", &["J", "I"]), ("J", &["K"]), ("I", &["K"]), ("K", &[]), ]), ("A", "K"), vec!["G".into()], vec![]), Output = "9" } Test! { Name = problem10251, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["V", "E"]), ("V", &["J", "E", "Z"]), ("G", &["V", "Z"]), ("D", &["G", "Z"]), ("E", &["J", "I"]), ("J", &["I"]), ("Z", &["J", "I"]), ("I", &[]), ]), ("A", "I"), vec!["V".into()], vec![]), Output = "20" } Test! { Name = problem10252, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["V", "E"]), ("V", &["J", "E", "Z"]), ("G", &["V", "Z"]), ("D", &["G", "Z"]), ("E", &["J", "I"]), ("J", &["I"]), ("Z", &["J", "I"]), ("I", &[]), ]), ("A", "I"), vec!["G".into()], vec![]), Output = "14" } Test! { Name = problem10253, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["J", "E"]), ("V", &["J", "B", "Z"]), ("G", &["V", "Z"]), ("D", &["G", "Z"]), ("E", &["J", "I"]), ("J", &["I"]), ("Z", &["J", "I"]), ("I", &[]), ]), ("A", "I"), vec!["J".into()], vec![]), Output = "17" } Test! { Name = problem10254, Input = (to_map(&[ ("A", &["B", "V", "G"]), ("B", &["V", "D"]), ("V", &["G", "D", "E", "I"]), ("G", &["I"]), ("D", &["K", "J", "E"]), ("E", &["K", "I"]), ("J", &["K"]), ("I", &["K"]), ("K", &[]), ]), ("A", "K"), vec![], vec!["V".into()]), Output = "5" } Test! { Name = problem10255, Input = (to_map(&[ ("A", &["B", "V", "G"]), ("B", &["V", "D"]), ("V", &["G", "D", "E", "I"]), ("G", &["I"]), ("D", &["K", "J", "E"]), ("E", &["K", "I"]), ("J", &["K"]), ("I", &["K"]), ("K", &[]), ]), ("A", "K"), vec![], vec!["E".into()]), Output = "11" } Test! { Name = problem10256, Input = (to_map(&[ ("A", &["B", "G", "V"]), ("B", &["G"]), ("V", &["G"]), ("G", &["D", "E", "I"]), ("D", &["J", "L", "E"]), ("I", &["K"]), ("E", &["I", "K", "L"]), ("J", &["L"]), ("K", &["L"]), ("L", &[]), ]), ("A", "L"), vec![], vec!["E".into()]), Output = "9" } Test! { Name = problem10257, Input = (to_map(&[ ("A", &["B", "G", "V"]), ("B", &["G", "J"]), ("V", &["G", "I", "K"]), ("G", &["E", "I"]), ("D", &["L", "E"]), ("I", &["K"]), ("E", &["I", "K", "L"]), ("J", &["D", "G", "L"]), ("K", &["L"]), ("L", &[]), ]), ("A", "L"), vec!["I".into()], vec![]), Output = "10" } Test! { Name = problem10258, Input = (to_map(&[ ("A", &["B", "G", "V"]), ("B", &["G", "J"]), ("V", &["G", "I", "K"]), ("G", &["E", "I"]), ("D", &["L", "E"]), ("I", &["K", "E"]), ("E", &["K", "L"]), ("J", &["D", "G", "L"]), ("K", &["L"]), ("L", &[]), ]), ("A", "L"), vec!["E".into()], vec![]), Output = "20" } Test! { Name = problem11016, Input = (to_map(&[ ("A", &["B", "G", "D"]), ("B", &["V", "G"]), ("D", &["E"]), ("G", &["V", "J", "E"]), ("V", &["J"]), ("E", &["J"]), ("J", &["K", "L", "M", "N"]), ("K", &["L", "P"]), ("L", &["P"]), ("M", &["L", "P"]), ("N", &["M"]), ("P", &[]), ]), ("A", "P"), vec!["L".into()], vec![]), Output = "32" } Test! { Name = problem11017, Input = (to_map(&[ ("A", &["B", "G", "D"]), ("B", &["V", "G"]), ("D", &["E"]), ("G", &["V", "J", "E"]), ("V", &["J"]), ("E", &["J"]), ("J", &["K", "L", "M", "N"]), ("K", &["L", "P"]), ("L", &["P"]), ("M", &["L", "P"]), ("N", &["M"]), ("P", &[]), ]), ("A", "P"), vec!["N".into()], vec![]), Output = "16" } Test! { Name = problem11019, Input = (to_map(&[ ("A", &["B", "G", "D"]), ("B", &["V", "G"]), ("D", &["E"]), ("G", &["V", "J", "E"]), ("V", &["J"]), ("E", &["J"]), ("J", &["K", "L", "M", "N"]), ("K", &["L", "P"]), ("L", &["P"]), ("M", &["L", "P"]), ("N", &["M"]), ("P", &[]), ]), ("A", "P"), vec!["E".into()], vec![]), Output = "21" } Test! { Name = problem11020, Input = (to_map(&[ ("A", &["B", "G", "D"]), ("B", &["V", "G"]), ("D", &["E"]), ("G", &["V", "J", "E"]), ("V", &["J"]), ("E", &["J"]), ("J", &["K", "L", "M", "N"]), ("K", &["L", "P"]), ("L", &["P"]), ("M", &["L", "P"]), ("N", &["M"]), ("P", &[]), ]), ("A", "P"), vec!["V".into()], vec![]), Output = "21" } Test! { Name = problem11021, Input = (to_map(&[ ("A", &["B", "G", "D"]), ("B", &["V", "G"]), ("D", &["E", "N"]), ("G", &["V", "J", "E"]), ("V", &["J", "K"]), ("E", &["J"]), ("J", &["K", "L", "M", "N"]), ("K", &["L", "P"]), ("L", &["M", "P"]), ("M", &["P"]), ("N", &["M"]), ("P", &[]), ]), ("A", "P"), vec!["L".into()], vec![]), Output = "38" } Test! { Name = problem11022, Input = (to_map(&[ ("A", &["B", "G", "D"]), ("B", &["V", "G"]), ("D", &["E", "N"]), ("G", &["V", "J", "E"]), ("V", &["J", "K"]), ("E", &["J"]), ("J", &["K", "L", "M", "N"]), ("K", &["L", "P"]), ("L", &["P"]), ("M", &["L", "P"]), ("N", &["M"]), ("P", &[]), ]), ("A", "P"), vec!["M".into()], vec![]), Output = "34" } Test! { Name = problem11023, Input = (to_map(&[ ("A", &["B", "V", "G"]), ("B", &["D", "V"]), ("V", &["D", "E", "G"]), ("G", &["E", "I"]), ("D", &["J", "K", "E"]), ("E", &["K"]), ("I", &["K"]), ("J", &["K"]), ("K", &[]) ]), ("A", "K"), vec![], vec!["V".into()]), Output = "5" } Test! { Name = problem11024, Input = (to_map(&[ ("A", &["B", "V", "G"]), ("B", &["D", "V"]), ("V", &["D", "E", "G"]), ("G", &["E", "I"]), ("D", &["J", "K", "E"]), ("E", &["I"]), ("I", &["K"]), ("J", &["K"]), ("K", &[]) ]), ("A", "K"), vec![], vec!["V".into()]), Output = "5" } Test! { Name = problem11025, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["E", "V"]), ("V", &["E", "J", "Z"]), ("G", &["V", "Z"]), ("D", &["G", "Z"]), ("E", &["J", "I"]), ("Z", &["J", "I"]), ("J", &["I"]), ("I", &["K", "L"]), ("K", &["M"]), ("L", &["M"]), ("M", &[]), ]), ("A", "M"), vec!["J".into()], vec!["K".into()]), Output = "16" } Test! { Name = problem11027, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["E", "V"]), ("V", &["E", "J", "Z"]), ("G", &["V", "Z"]), ("D", &["G", "Z"]), ("E", &["J", "I"]), ("Z", &["J", "I"]), ("J", &["I"]), ("I", &["K", "L"]), ("K", &["M"]), ("L", &["M"]), ("M", &[]), ]), ("A", "M"), vec!["L".into()], vec!["E".into()]), Output = "18" } Test! { Name = problem12858, Input = (to_map(&[ ("A", &["B", "V"]), ("B", &["G", "J", "D", "V"]), ("V", &["D"]), ("G", &["E", "J"]), ("J", &["E", "K"]), ("D", &["J", "K"]), ("E", &["K"]), ("K", &[]), ]), ("A", "K"), vec!["J".into()], vec![]), Output = "10" } Test! { Name = problem18177, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["E", "V"]), ("V", &["Z", "G"]), ("G", &["Z", "J"]), ("D", &["G", "J"]), ("E", &["I"]), ("Z", &["L"]), ("J", &["Z", "L", "K"]), ("I", &["L"]), ("K", &["L"]), ("L", &[]), ]), ("A", "L"), vec!["G".into()], vec![]), Output = "16" } Test! { Name = problem18192, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["E", "V"]), ("V", &["Z", "E"]), ("G", &["Z", "V"]), ("D", &["G", "J"]), ("E", &["I", "Z", "L"]), ("Z", &["L"]), ("J", &["Z", "K"]), ("I", &["L"]), ("K", &["L"]), ("L", &[]), ]), ("A", "L"), vec!["E".into()], vec![]), Output = "15" } Test! { Name = problem18218, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["E", "V"]), ("V", &["Z", "G"]), ("G", &["Z", "J"]), ("D", &["G", "J"]), ("E", &["I", "Z", "L"]), ("Z", &["L"]), ("J", &["Z", "L", "K"]), ("I", &["L"]), ("K", &["L"]), ("L", &[]), ]), ("A", "L"), vec!["Z".into()], vec![]), Output = "12" } Test! { Name = problem18233, Input = (to_map(&[ ("A", &["B", "V", "G", "D"]), ("B", &["E", "V"]), ("V", &["Z", "G", "E"]), ("G", &["Z", "J"]), ("D", &["G", "J"]), ("E", &["I", "Z", "L"]), ("Z", &["L"]), ("J", &["L", "K"]), ("I", &["L"]), ("K", &["L"]), ("L", &[]), ]), ("A", "L"), vec!["V".into()], vec![]), Output = "14" } Test! { Name = problem18430, Input = (to_map(&[ ("A", &["B", "V", "G"]), ("B", &["D", "V"]), ("V", &["D", "E", "J", "G"]), ("G", &["J"]), ("D", &["E", "K"]), ("E", &["K"]), ("J", &["K"]), ("K", &[]), ]), ("A", "K"), vec!["V".into()], vec![]), Output = "10" }