parquet_geospatial/
testing.rs1pub fn wkb_point_xy(x: f64, y: f64) -> Vec<u8> {
22 let mut item: [u8; 21] = [0; 21];
23 item[0] = 0x01;
24 item[1] = 0x01;
25 item[5..13].copy_from_slice(x.to_le_bytes().as_slice());
26 item[13..21].copy_from_slice(y.to_le_bytes().as_slice());
27 item.to_vec()
28}
29
30pub fn wkb_point_xyzm(x: f64, y: f64, z: f64, m: f64) -> Vec<u8> {
32 let mut item: [u8; 37] = [0; 37];
33 item[0] = 0x01;
34 item[1..5].copy_from_slice(3001_u32.to_le_bytes().as_slice());
35 item[5..13].copy_from_slice(x.to_le_bytes().as_slice());
36 item[13..21].copy_from_slice(y.to_le_bytes().as_slice());
37 item[21..29].copy_from_slice(z.to_le_bytes().as_slice());
38 item[29..37].copy_from_slice(m.to_le_bytes().as_slice());
39 item.to_vec()
40}
41
42#[cfg(test)]
43mod test {
44
45 use wkb::reader::Wkb;
46
47 use super::*;
48
49 #[test]
50 fn test_wkb_item() {
51 let bytes = wkb_point_xy(1.0, 2.0);
52 let geometry = Wkb::try_new(&bytes).unwrap();
53 let mut wkt = String::new();
54 wkt::to_wkt::write_geometry(&mut wkt, &geometry).unwrap();
55 assert_eq!(wkt, "POINT(1 2)");
56 }
57
58 #[test]
59 fn test_wkb_point_xyzm() {
60 let bytes = wkb_point_xyzm(1.0, 2.0, 3.0, 4.0);
61 let geometry = Wkb::try_new(&bytes).unwrap();
62 let mut wkt = String::new();
63 wkt::to_wkt::write_geometry(&mut wkt, &geometry).unwrap();
64 assert_eq!(wkt, "POINT ZM(1 2 3 4)");
65 }
66}