• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vortex-data / vortex / 17073077835

19 Aug 2025 02:40PM UTC coverage: 24.083%. First build
17073077835

Pull #4177

github

web-flow
Merge b42e5758f into 431a8f2b5
Pull Request #4177: feat: ArrayOperations infallible, eager validation + new_unchecked

197 of 1455 new or added lines in 154 files covered. (13.54%)

8646 of 35901 relevant lines covered (24.08%)

142.28 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/vortex-array/src/arrays/bool/ops.rs
1
// SPDX-License-Identifier: Apache-2.0
2
// SPDX-FileCopyrightText: Copyright the Vortex contributors
3

4
use vortex_scalar::Scalar;
5

6
use crate::arrays::{BoolArray, BoolVTable};
7
use crate::vtable::{OperationsVTable, ValidityHelper};
8
use crate::{ArrayRef, IntoArray};
9

10
impl OperationsVTable<BoolVTable> for BoolVTable {
NEW
11
    fn slice(array: &BoolArray, start: usize, stop: usize) -> ArrayRef {
×
NEW
12
        BoolArray::new(
×
13
            array.boolean_buffer().slice(start, stop - start),
×
NEW
14
            array.validity().slice(start, stop),
×
15
        )
×
NEW
16
        .into_array()
×
17
    }
×
18

NEW
19
    fn scalar_at(array: &BoolArray, index: usize) -> Scalar {
×
NEW
20
        Scalar::bool(
×
21
            array.boolean_buffer().value(index),
×
22
            array.dtype().nullability(),
×
23
        )
24
    }
×
25
}
26

27
#[cfg(test)]
28
mod tests {
29
    use super::*;
30
    use crate::ToCanonical;
31

32
    #[test]
33
    fn test_slice_large() {
34
        let arr = BoolArray::from_iter(std::iter::repeat_n(Some(true), 100));
35
        let sliced_arr = arr.slice(8, 16).to_bool().unwrap();
36
        assert_eq!(sliced_arr.len(), 8);
37
        assert_eq!(sliced_arr.boolean_buffer().len(), 8);
38
        assert_eq!(sliced_arr.boolean_buffer().offset(), 0);
39
    }
40

41
    #[test]
42
    fn test_slice() {
43
        let arr = BoolArray::from_iter([Some(true), Some(true), None, Some(false), None]);
44
        let sliced_arr = arr.slice(1, 4).to_bool().unwrap();
45

46
        assert_eq!(sliced_arr.len(), 3);
47

48
        let s = sliced_arr.scalar_at(0);
49
        assert_eq!(s.as_bool().value(), Some(true));
50

51
        let s = sliced_arr.scalar_at(1);
52
        assert!(!sliced_arr.is_valid(1).unwrap());
53
        assert!(s.is_null());
54

55
        let s = sliced_arr.scalar_at(2);
56
        assert_eq!(s.as_bool().value(), Some(false));
57
    }
58
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc