You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by al...@apache.org on 2021/08/06 21:00:36 UTC

[arrow-rs] branch active_release updated: Doctests for from_iter for BooleanArray & for BooleanBuilder. (#647) (#669)

This is an automated email from the ASF dual-hosted git repository.

alamb pushed a commit to branch active_release
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git


The following commit(s) were added to refs/heads/active_release by this push:
     new dace74b  Doctests for from_iter for BooleanArray & for BooleanBuilder. (#647) (#669)
dace74b is described below

commit dace74b840baae239e6feb379ce152db01bdf155
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Fri Aug 6 17:00:32 2021 -0400

    Doctests for from_iter for BooleanArray & for BooleanBuilder. (#647) (#669)
    
    Co-authored-by: Navin <na...@novemberkilo.com>
---
 arrow/src/array/array_boolean.rs | 31 +++++++++++++++++++++++++++++++
 arrow/src/array/builder.rs       | 29 +++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+)

diff --git a/arrow/src/array/array_boolean.rs b/arrow/src/array/array_boolean.rs
index d9c4480..5357614 100644
--- a/arrow/src/array/array_boolean.rs
+++ b/arrow/src/array/array_boolean.rs
@@ -47,6 +47,23 @@ use crate::util::bit_util;
 ///     assert_eq!(true, arr.value(3));
 /// ```
 ///
+/// Using `from_iter`
+/// ```
+///     use arrow::array::{Array, BooleanArray};
+///     let v = vec![Some(false), Some(true), Some(false), Some(true)];
+///     let arr = v.into_iter().collect::<BooleanArray>();
+///     assert_eq!(4, arr.len());
+///     assert_eq!(0, arr.offset());
+///     assert_eq!(0, arr.null_count());
+///     assert!(arr.is_valid(0));
+///     assert_eq!(false, arr.value(0));
+///     assert!(arr.is_valid(1));
+///     assert_eq!(true, arr.value(1));
+///     assert!(arr.is_valid(2));
+///     assert_eq!(false, arr.value(2));
+///     assert!(arr.is_valid(3));
+///     assert_eq!(true, arr.value(3));
+/// ```
 pub struct BooleanArray {
     data: ArrayData,
     /// Pointer to the value array. The lifetime of this must be <= to the value buffer
@@ -271,6 +288,20 @@ mod tests {
     }
 
     #[test]
+    fn test_boolean_array_from_iter() {
+        let v = vec![Some(false), Some(true), Some(false), Some(true)];
+        let arr = v.into_iter().collect::<BooleanArray>();
+        assert_eq!(4, arr.len());
+        assert_eq!(0, arr.offset());
+        assert_eq!(0, arr.null_count());
+        for i in 0..3 {
+            assert!(!arr.is_null(i));
+            assert!(arr.is_valid(i));
+            assert_eq!(i == 1 || i == 3, arr.value(i), "failed at {}", i)
+        }
+    }
+
+    #[test]
     fn test_boolean_array_builder() {
         // Test building a boolean array with ArrayData builder and offset
         // 000011011
diff --git a/arrow/src/array/builder.rs b/arrow/src/array/builder.rs
index a7bc53f..c3835f9 100644
--- a/arrow/src/array/builder.rs
+++ b/arrow/src/array/builder.rs
@@ -472,6 +472,35 @@ pub trait ArrayBuilder: Any + Send {
 }
 
 ///  Array builder for fixed-width primitive types
+///
+/// # Example
+///
+/// Create a `BooleanArray` from a `BooleanBuilder`
+///
+/// ```
+///     use arrow::array::{Array, BooleanArray, BooleanBuilder};
+///
+///     let mut b = BooleanBuilder::new(4);
+///     b.append_value(true);
+///     b.append_null();
+///     b.append_value(false);
+///     b.append_value(true);
+///     let arr = b.finish();
+///
+///     assert_eq!(4, arr.len());
+///     assert_eq!(1, arr.null_count());
+///     assert_eq!(true, arr.value(0));
+///     assert!(arr.is_valid(0));
+///     assert!(!arr.is_null(0));
+///     assert!(!arr.is_valid(1));
+///     assert!(arr.is_null(1));
+///     assert_eq!(false, arr.value(2));
+///     assert!(arr.is_valid(2));
+///     assert!(!arr.is_null(2));
+///     assert_eq!(true, arr.value(3));
+///     assert!(arr.is_valid(3));
+///     assert!(!arr.is_null(3));
+/// ```
 #[derive(Debug)]
 pub struct BooleanBuilder {
     values_builder: BooleanBufferBuilder,