vrp-cli 1.25.0

A command line interface for VRP solver
Documentation
use super::*;

const PRAGMATIC_PROBLEM_PATH: &str = "../examples/data/pragmatic/simple.basic.problem.json";

struct DummyWrite {}

impl Write for DummyWrite {
    fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
        Ok(buf.len())
    }

    fn flush(&mut self) -> std::io::Result<()> {
        Ok(())
    }
}

#[test]
fn can_run_analyze_clusters() {
    let tmpfile = tempfile::NamedTempFile::new().unwrap();
    let args = vec![
        "analyze",
        "clusters",
        "pragmatic",
        PRAGMATIC_PROBLEM_PATH,
        "--out-result",
        tmpfile.path().to_str().unwrap(),
    ];
    let matches = get_analyze_app().try_get_matches_from(args).unwrap();

    run_analyze(&matches, |_| BufWriter::new(Box::new(DummyWrite {}))).unwrap();
}

#[test]
fn can_detect_wrong_argument() {
    let args = vec!["analyze", "clusters", "solomon", PRAGMATIC_PROBLEM_PATH, "--out-result", "/some/path"];

    assert!(get_analyze_app().try_get_matches_from(args).is_err());
}