use super::*; use std::fs::File; const PRAGMATIC_PROBLEM_PATH: &str = "../examples/data/pragmatic/simple.basic.problem.json"; const PRAGMATIC_MATRIX_PATH: &str = "../examples/data/pragmatic/simple.basic.matrix.json"; const PRAGMATIC_SOLUTION_PATH: &str = "../examples/data/pragmatic/simple.basic.solution.json"; fn reader(path: &str) -> BufReader { BufReader::new(File::open(path).expect("cannot open test file")) } #[test] pub fn can_detect_invalid_problem_file() { assert_eq!( check_pragmatic_solution(reader(PRAGMATIC_MATRIX_PATH), reader(PRAGMATIC_SOLUTION_PATH), None) .expect_err("no error returned"), vec!["cannot read problem: 'E0000, cause: 'cannot deserialize problem', action: 'check input json: 'missing field `plan` at line 39 column 1''.'".into()] ); } #[test] pub fn can_detect_invalid_solution_file() { assert_eq!( check_pragmatic_solution(reader(PRAGMATIC_PROBLEM_PATH), reader(PRAGMATIC_MATRIX_PATH), None) .expect_err("no error returned"), vec!["cannot read solution: 'missing field `statistic` at line 39 column 1'".into()] ); } #[test] pub fn can_detect_invalid_matrix_file() { assert_eq!( check_pragmatic_solution(reader(PRAGMATIC_PROBLEM_PATH), reader(PRAGMATIC_SOLUTION_PATH), Some(vec![reader(PRAGMATIC_SOLUTION_PATH)])) .expect_err("no error returned"), vec!["cannot read matrix: 'E0001, cause: 'cannot deserialize matrix', action: 'check input json: 'missing field `travelTimes` at line 159 column 1''.'".into()] ); }