Skip to content
This repository has been archived by the owner on Feb 18, 2024. It is now read-only.

Commit

Permalink
Added some tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
jorgecarleitao committed Sep 4, 2021
1 parent b16d6b9 commit 265feaf
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tests/it/array/primitive/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use std::iter::FromIterator;
use arrow2::{
array::*,
bitmap::Bitmap,
buffer::Buffer,
datatypes::*,
types::{days_ms, months_days_ns},
};
Expand Down Expand Up @@ -256,3 +257,10 @@ fn months_days_ns() {
let a = array.values().as_slice();
assert_eq!(a, data.as_ref());
}

#[test]
#[should_panic]
fn wrong_data_type() {
let values = Buffer::from(b"abbb");
PrimitiveArray::from_data(DataType::Utf8, values, None);
}
7 changes: 7 additions & 0 deletions tests/it/array/primitive/mutable.rs
Original file line number Diff line number Diff line change
Expand Up @@ -148,3 +148,10 @@ fn try_from_trusted_len_iter() {
let a = MutablePrimitiveArray::try_from_trusted_len_iter(iter).unwrap();
assert_eq!(a, MutablePrimitiveArray::from([Some(1), Some(1)]));
}

#[test]
#[should_panic]
fn wrong_data_type() {
let values = MutableBuffer::from(b"abbb");
MutablePrimitiveArray::from_data(DataType::Utf8, values, None);
}
24 changes: 24 additions & 0 deletions tests/it/array/utf8/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -107,3 +107,27 @@ fn try_from_trusted_len_iter() {
Utf8Array::<i32>::from_data(DataType::Utf8, offsets, values, None)
);
}

#[test]
#[should_panic]
fn not_utf8() {
let offsets = Buffer::from(&[0, 4]);
let values = Buffer::from([0, 159, 146, 150]); // invalid utf8
Utf8Array::<i32>::from_data(DataType::Utf8, offsets, values, None);
}

#[test]
#[should_panic]
fn wrong_offsets() {
let offsets = Buffer::from(&[0, 5, 4]); // invalid offsets
let values = Buffer::from(b"abbbbb");
Utf8Array::<i32>::from_data(DataType::Utf8, offsets, values, None);
}

#[test]
#[should_panic]
fn wrong_data_type() {
let offsets = Buffer::from(&[0, 4]); // invalid offsets
let values = Buffer::from(b"abbb");
Utf8Array::<i32>::from_data(DataType::Int8, offsets, values, None);
}
28 changes: 28 additions & 0 deletions tests/it/array/utf8/mutable.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
use arrow2::array::{Array, MutableUtf8Array, Utf8Array};
use arrow2::bitmap::Bitmap;
use arrow2::buffer::MutableBuffer;
use arrow2::datatypes::DataType;

#[test]
fn capacities() {
Expand All @@ -17,3 +19,29 @@ fn push_null() {
let array: Utf8Array<i32> = array.into();
assert_eq!(array.validity(), &Some(Bitmap::from([false])));
}

/// Safety guarantee
#[test]
#[should_panic]
fn not_utf8() {
let offsets = MutableBuffer::from(&[0, 4]);
let values = MutableBuffer::from([0, 159, 146, 150]); // invalid utf8
MutableUtf8Array::<i32>::from_data(DataType::Utf8, offsets, values, None);
}

/// Safety guarantee
#[test]
#[should_panic]
fn wrong_offsets() {
let offsets = MutableBuffer::from(&[0, 5, 4]); // invalid offsets
let values = MutableBuffer::from(b"abbbbb");
MutableUtf8Array::<i32>::from_data(DataType::Utf8, offsets, values, None);
}

#[test]
#[should_panic]
fn wrong_data_type() {
let offsets = MutableBuffer::from(&[0, 4]); // invalid offsets
let values = MutableBuffer::from(b"abbb");
MutableUtf8Array::<i32>::from_data(DataType::Int8, offsets, values, None);
}

0 comments on commit 265feaf

Please sign in to comment.