xacro 0.1.3

A xml preprocessor for xacro files to generate URDF files
Documentation
#[cfg(test)]
mod include_tests {
    use crate::{features::includes::IncludeProcessor, XacroProcessor};
    use log::error;
    use std::path::Path;

    #[test]
    fn test_include_basic() {
        env_logger::try_init().ok();
        let include_processor = IncludeProcessor::new();
        let path = Path::new("tests/data/include_test.xacro");
        let data = XacroProcessor::parse_file(path).unwrap();
        let expected =
            XacroProcessor::parse_file("tests/data/include_test_expected.xacro").unwrap();

        let result = include_processor.process(data, path);

        if result.is_err() {
            error!("{:?}", result);
        }

        assert!(result.is_ok());
        assert_eq!(result.unwrap(), expected);
    }

    #[test]
    fn test_include_multi() {
        env_logger::try_init().ok();
        let include_processor = IncludeProcessor::new();
        let path = Path::new("tests/data/include_test_multi_base.xacro");
        let data = XacroProcessor::parse_file(path).unwrap();
        let expected =
            XacroProcessor::parse_file("tests/data/include_test_multi_expected.xacro").unwrap();

        let result = include_processor.process(data, path);

        if result.is_err() {
            println!("{:?}", result);
        }

        assert!(result.is_ok());
        assert_eq!(result.unwrap(), expected);
    }

    #[test]
    fn test_include_nested() {
        env_logger::try_init().ok();
        let include_processor = IncludeProcessor::new();
        let path = Path::new("tests/data/include_test_nested_base.xacro");
        let data = XacroProcessor::parse_file(path).unwrap();
        let expected =
            XacroProcessor::parse_file("tests/data/include_test_nested_expected.xacro").unwrap();

        let result = include_processor.process(data, path);

        if result.is_err() {
            println!("{:?}", result);
        }

        assert!(result.is_ok());
        assert_eq!(result.unwrap(), expected);
    }

    #[test]
    fn test_include_subdirectory() {
        env_logger::try_init().ok();
        let include_processor = IncludeProcessor::new();
        let path = Path::new("tests/data/include_test_directory.xacro");
        let data = XacroProcessor::parse_file(path).unwrap();
        let expected =
            XacroProcessor::parse_file("tests/data/include_test_directory_expected.xacro").unwrap();

        let result = include_processor.process(data, path);

        if result.is_err() {
            println!("{:?}", result);
        }

        assert!(result.is_ok());
        assert_eq!(result.unwrap(), expected);
    }
}