Skip to content

Commit

Permalink
add test
Browse files Browse the repository at this point in the history
  • Loading branch information
LittleFall committed May 5, 2022
1 parent 402e689 commit c9c0d43
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions src/common/src/array/iterator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,46 @@ impl<'a> Iterator for ArrayImplIterator<'a> {
(size, Some(size))
}
}

#[cfg(test)]
mod tests {
use paste::paste;

use super::*;
use crate::array::ArrayBuilder;
use crate::for_all_variants;

macro_rules! test_trusted_len {
([], $( { $variant_name:ident, $suffix_name:ident, $array:ty, $builder:ty } ),*) => {
$(
paste! {
#[test]
fn [<test_trusted_len_for_ $suffix_name _array>]() {
use crate::array::$builder;
let mut builder = $builder::new(3).unwrap();
for _ in 0..3 {
builder.append_null().unwrap();
}
let array = builder.finish().unwrap();
let mut iter = array.iter();

assert_eq!(iter.size_hint(), (3, Some(3))); iter.next();
assert_eq!(iter.size_hint(), (2, Some(2))); iter.next();
assert_eq!(iter.size_hint(), (1, Some(1))); iter.next();
assert_eq!(iter.size_hint(), (0, Some(0)));

let array_impl = ArrayImpl::from(array);
let mut iter = array_impl.iter();

assert_eq!(iter.size_hint(), (3, Some(3))); iter.next();
assert_eq!(iter.size_hint(), (2, Some(2))); iter.next();
assert_eq!(iter.size_hint(), (1, Some(1))); iter.next();
assert_eq!(iter.size_hint(), (0, Some(0)));
}
}
)*
};
}

for_all_variants! {test_trusted_len}
}

0 comments on commit c9c0d43

Please sign in to comment.