geoarrow_array/test/
linestring.rs1use geo_types::{LineString, line_string};
2use geoarrow_schema::{CoordType, Dimension, LineStringType};
3use geoarrow_test::raw;
4
5use crate::array::LineStringArray;
6use crate::builder::LineStringBuilder;
7
8pub(crate) fn ls0() -> LineString {
9 line_string![
10 (x: 0., y: 1.),
11 (x: 1., y: 2.)
12 ]
13}
14
15pub(crate) fn ls1() -> LineString {
16 line_string![
17 (x: 3., y: 4.),
18 (x: 5., y: 6.)
19 ]
20}
21
22pub(crate) fn ls_array(coord_type: CoordType) -> LineStringArray {
23 let geoms = vec![Some(ls0()), None, Some(ls1()), None];
24 let typ = LineStringType::new(Dimension::XY, Default::default()).with_coord_type(coord_type);
25 LineStringBuilder::from_nullable_line_strings(&geoms, typ).finish()
26}
27
28pub fn array(coord_type: CoordType, dim: Dimension) -> LineStringArray {
29 let typ = LineStringType::new(dim, Default::default()).with_coord_type(coord_type);
30 let geoms = match dim {
31 Dimension::XY => raw::linestring::xy::geoms(),
32 Dimension::XYZ => raw::linestring::xyz::geoms(),
33 Dimension::XYM => raw::linestring::xym::geoms(),
34 Dimension::XYZM => raw::linestring::xyzm::geoms(),
35 };
36 LineStringBuilder::from_nullable_line_strings(&geoms, typ).finish()
37}