Skip to content

Commit

Permalink
failing test
Browse files Browse the repository at this point in the history
  • Loading branch information
bjchambers committed Jun 30, 2021
1 parent f1a831f commit ccc8a4c
Showing 1 changed file with 66 additions and 1 deletion.
67 changes: 66 additions & 1 deletion arrow/src/array/equal/mod.rs
Expand Up @@ -295,7 +295,7 @@ mod tests {
Int32Builder, ListBuilder, NullArray, PrimitiveBuilder, StringArray,
StringDictionaryBuilder, StringOffsetSizeTrait, StructArray,
};
use crate::array::{GenericStringArray, Int32Array};
use crate::array::{GenericStringArray, Int32Array, StringBuilder, StructBuilder};
use crate::buffer::Buffer;
use crate::datatypes::{Field, Int16Type, ToByteSlice};

Expand Down Expand Up @@ -1019,6 +1019,71 @@ mod tests {
test_equal(&a, &b, true);
}

fn make_struct(
elements: Vec<Option<(Option<&'static str>, Option<i32>)>>,
) -> StructArray {
let mut builder = StructBuilder::new(
vec![
Field::new("f1", DataType::Utf8, true),
Field::new("f2", DataType::Int32, true),
],
vec![
Box::new(StringBuilder::new(elements.len())),
Box::new(Int32Builder::new(elements.len())),
],
);

for element in elements {
match element.and_then(|e| e.0) {
None => builder
.field_builder::<StringBuilder>(0)
.unwrap()
.append_null()
.unwrap(),
Some(s) => builder
.field_builder::<StringBuilder>(0)
.unwrap()
.append_value(s)
.unwrap(),
};

builder
.field_builder::<Int32Builder>(1)
.unwrap()
.append_option(element.and_then(|e| e.1))
.unwrap();

builder.append(element.is_some()).unwrap();
}

builder.finish()
}

#[test]
fn test_struct_equal_slice() {
let a = make_struct(vec![
None,
Some((Some("joe"), Some(1))),
Some((None, Some(2))),
Some((None, None)),
Some((Some("mark"), Some(4))),
Some((Some("doe"), Some(5))),
]);
let a = a.slice(1, 5);
let a = a.as_any().downcast_ref::<StructArray>().unwrap();

let b = make_struct(vec![
Some((Some("joe"), Some(1))),
Some((None, Some(2))),
Some((None, None)),
Some((Some("mark"), Some(4))),
Some((Some("doe"), Some(5))),
]);
assert_eq!(a, &b);

test_equal(a.data(), b.data(), true);
}

#[test]
fn test_struct_equal_null() {
let strings: ArrayRef = Arc::new(StringArray::from(vec![
Expand Down

0 comments on commit ccc8a4c

Please sign in to comment.