#![allow(dead_code)]
extern crate shapefile;
use shapefile::Point;
pub const LINE_PATH: &str = "./tests/data/line.shp";
pub const LINE_SHX_PATH: &str = "./tests/data/line.shx";
pub const LINEM_PATH: &str = "./tests/data/linem.shp";
pub const LINEZ_PATH: &str = "./tests/data/linez.shp";
pub const POINT_PATH: &str = "./tests/data/point.shp";
pub const POINT_SHX_PATH: &str = "./tests/data/point.shx";
pub const POINTM_PATH: &str = "./tests/data/pointm.shp";
pub const POINTZ_PATH: &str = "./tests/data/pointz.shp";
pub const POLYGON_PATH: &str = "./tests/data/polygon.shp";
pub const POLYGON_HOLE_PATH: &str = "./tests/data/polygon_hole.shp";
pub const POLYGON_HOLE_SHX_PATH: &str = "./tests/data/polygon_hole.shx";
pub const POLYGONM_PATH: &str = "./tests/data/polygonm.shp";
pub const POLYGONZ_PATH: &str = "./tests/data/polygonz.shp";
pub const MULTIPOINT_PATH: &str = "./tests/data/multipoint.shp";
pub const MULTIPOINTZ_PATH: &str = "./tests/data/multipointz.shp";
pub const MULTIPATCH_PATH: &str = "./tests/data/multipatch.shp";
pub fn check_line_first_shape(shape: &shapefile::Shape) {
if let shapefile::Shape::Polyline(shp) = shape {
assert_eq!(shp.bbox().min.x, 1.0);
assert_eq!(shp.bbox().min.y, 1.0);
assert_eq!(shp.bbox().max.x, 5.0);
assert_eq!(shp.bbox().max.y, 6.0);
let first_part = vec![
Point { x: 1.0, y: 5.0 },
Point { x: 5.0, y: 5.0 },
Point { x: 5.0, y: 1.0 },
Point { x: 3.0, y: 3.0 },
Point { x: 1.0, y: 1.0 },
];
let second_part = vec![Point { x: 3.0, y: 2.0 }, Point { x: 2.0, y: 6.0 }];
assert_eq!(shp.parts()[0], first_part.as_slice());
assert_eq!(shp.parts()[1], second_part.as_slice());
} else {
panic!("The shape is not a Polyline");
}
}