From 13edf5a69625174b651dd527de0dd6b414247fa4 Mon Sep 17 00:00:00 2001 From: "Jorge C. Leitao" Date: Sat, 25 Jun 2022 08:22:45 +0000 Subject: [PATCH] Added more tests --- tests/it/array/utf8/to_mutable.rs | 71 +++++++++++++++++++++++++++---- 1 file changed, 62 insertions(+), 9 deletions(-) diff --git a/tests/it/array/utf8/to_mutable.rs b/tests/it/array/utf8/to_mutable.rs index 12f52151c68..e9956feffdb 100644 --- a/tests/it/array/utf8/to_mutable.rs +++ b/tests/it/array/utf8/to_mutable.rs @@ -1,14 +1,67 @@ -use arrow2::array::Utf8Array; +use arrow2::{array::Utf8Array, bitmap::Bitmap, buffer::Buffer, datatypes::DataType}; #[test] -#[allow(clippy::redundant_clone)] -fn array_to_mutable() { +fn not_shared() { let array = Utf8Array::::from(&[Some("hello"), Some(" "), None]); - let mutable = array.into_mut().unwrap_right(); + assert!(array.into_mut().is_right()); +} + +#[test] +#[allow(clippy::redundant_clone)] +fn shared_validity() { + let validity = Bitmap::from([true]); + let array = Utf8Array::::new( + DataType::Utf8, + vec![0, 1].into(), + b"a".to_vec().into(), + Some(validity.clone()), + ); + assert!(array.into_mut().is_left()) +} - let array: Utf8Array = mutable.into(); - let array2 = array.clone(); - let maybe_mut = array2.into_mut(); - // the ref count is 2 we should not get a mutable. - assert!(maybe_mut.is_left()) +#[test] +#[allow(clippy::redundant_clone)] +fn shared_values() { + let values: Buffer = b"a".to_vec().into(); + let array = Utf8Array::::new( + DataType::Utf8, + vec![0, 1].into(), + values.clone(), + Some(Bitmap::from([true])), + ); + assert!(array.into_mut().is_left()) +} + +#[test] +#[allow(clippy::redundant_clone)] +fn shared_offsets_values() { + let offsets: Buffer = vec![0, 1].into(); + let values: Buffer = b"a".to_vec().into(); + let array = Utf8Array::::new( + DataType::Utf8, + offsets.clone(), + values.clone(), + Some(Bitmap::from([true])), + ); + assert!(array.into_mut().is_left()) +} + +#[test] +#[allow(clippy::redundant_clone)] +fn shared_offsets() { + let offsets: Buffer = vec![0, 1].into(); + let array = Utf8Array::::new( + DataType::Utf8, + offsets.clone(), + b"a".to_vec().into(), + Some(Bitmap::from([true])), + ); + assert!(array.into_mut().is_left()) +} + +#[test] +#[allow(clippy::redundant_clone)] +fn shared_all() { + let array = Utf8Array::::from(&[Some("hello"), Some(" "), None]); + assert!(array.clone().into_mut().is_left()) }