cjval 0.6.1

Validation of CityJSON files against its schemas
Documentation
use crate::cjval::CJValidator;
use cjval;

use serde_json::Value;

fn get_data() -> Value {
    let j_mininal = r#"
        {
            "type": "CityJSON",
            "version": "1.1",
            "CityObjects":
            {
                "LondonTower": { "type": "Building" }
            },
            "vertices": [
                [0, 0, 0],
                [1000, 0, 0],
                [1000, 1000, 0],
                [1000, 0, 0]
            ],
            "transform":
            {
                "scale": [0.001, 0.001, 0.001],
                "translate": [ 0.0, 0.0, 0.0]
            }
        }
        "#;
    let v: Value = serde_json::from_str(&j_mininal).unwrap();
    v
}

#[test]
fn invalid_integer() {
    let j = get_data();
    let v: CJValidator = CJValidator::from_str(&j.to_string());
    let re = v.validate();
    assert!(!re["duplicate_vertices"].is_valid());
}

#[test]
fn valid_integer() {
    let mut j = get_data();
    j["vertices"].as_array_mut().unwrap().pop().unwrap();
    let v: CJValidator = CJValidator::from_str(&j.to_string());
    let re = v.validate();
    assert!(re["duplicate_vertices"].is_valid());
}