geoarrow_array/test/
multipoint.rs1use geo_types::{MultiPoint, point};
2use geoarrow_schema::{CoordType, Dimension, MultiPointType};
3use geoarrow_test::raw;
4
5use crate::array::MultiPointArray;
6use crate::builder::MultiPointBuilder;
7
8pub(crate) fn mp0() -> MultiPoint {
9 MultiPoint::new(vec![
10 point!(
11 x: 0., y: 1.
12 ),
13 point!(
14 x: 1., y: 2.
15 ),
16 ])
17}
18
19pub(crate) fn mp1() -> MultiPoint {
20 MultiPoint::new(vec![
21 point!(
22 x: 3., y: 4.
23 ),
24 point!(
25 x: 5., y: 6.
26 ),
27 ])
28}
29
30pub(crate) fn mp_array(coord_type: CoordType) -> MultiPointArray {
31 let geoms = vec![Some(mp0()), None, Some(mp1()), None];
32 let typ = MultiPointType::new(Dimension::XY, Default::default()).with_coord_type(coord_type);
33 MultiPointBuilder::from_nullable_multi_points(&geoms, typ).finish()
34}
35
36pub fn array(coord_type: CoordType, dim: Dimension) -> MultiPointArray {
37 let typ = MultiPointType::new(dim, Default::default()).with_coord_type(coord_type);
38 let geoms = match dim {
39 Dimension::XY => raw::multipoint::xy::geoms(),
40 Dimension::XYZ => raw::multipoint::xyz::geoms(),
41 Dimension::XYM => raw::multipoint::xym::geoms(),
42 Dimension::XYZM => raw::multipoint::xyzm::geoms(),
43 };
44 MultiPointBuilder::from_nullable_multi_points(&geoms, typ).finish()
45}