1#![doc(html_root_url = "https://docs.rs/shapelib-rs/0.2.2")]
2pub mod shape;
15
16#[cfg(test)]
17mod tests {
18 use super::shape::*; use std::path::PathBuf;
20 use asciiz::u8z;
21
22 #[test]
24 fn check_shapelib() {
25unsafe{
26 let mut shp = ShapeC::from(7, 3);
27 assert!(shp.to_int() == 21);
28 assert_eq!(c(5, 3), 15);
29}
30 assert_eq!(u8zs(b"aB\0".to_vec()).unwrap(),
31 String::from_utf8(b"aB".to_vec()).unwrap());
32 }
33
34 #[test]
35 fn check_path() {
36 let s_path: String = if cfg!(docsrs) {
37 std::env::var("OUT_DIR").unwrap()
38 }else{
39 ".".to_string()
40 }; let o_path: &str = s_path.as_str();
42 if o_path != "." { return; }
43 let bp = PathBuf::from(o_path).join("shp").join("ESRIJ_com_japan_ver84");
44 println!("{}", bp.join("japan_ver84.shp").to_str().unwrap());
45 println!("{}", bp.join("japan_ver84.dbf").to_str().unwrap());
46 let s = bp.join("japan_ver84"); let u = s.to_str().unwrap(); let p = u8z::U8zBuf::from_u8array(u.as_bytes()); let e = u8z::U8zBuf::from_u8array(b"cp932"); unsafe {
51 let mut shp = ShapeC::new(p.as_i8p(), e.as_i8p());
52 assert!(shp.is_valid());
53drop(shp);
60}
61 let shp = ShapeF::new(u, "cp932").unwrap();
62 shp.disp_record_inf().unwrap();
63 let _sci = shp.get_shp_contours(false).unwrap();
64 drop(shp);
65 }
66}