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

vortex-data / vortex / 16728097825

04 Aug 2025 04:00PM UTC coverage: 48.355% (-35.1%) from 83.429%
16728097825

Pull #4108

github

web-flow
Merge 1b2d27fd8 into 649ba9576
Pull Request #4108: perf[vortex-array]: use all_valid instead of `invalid_count() == 0`

1 of 1 new or added line in 1 file covered. (100.0%)

11596 existing lines in 378 files now uncovered.

18635 of 38538 relevant lines covered (48.35%)

151786.4 hits per line

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

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

4
use vortex_error::VortexResult;
5
use vortex_mask::Mask;
6

7
use crate::arrays::{BoolArray, BoolVTable};
8
use crate::compute::{IsSortedIteratorExt, IsSortedKernel, IsSortedKernelAdapter};
9
use crate::register_kernel;
10

11
impl IsSortedKernel for BoolVTable {
UNCOV
12
    fn is_sorted(&self, array: &BoolArray) -> VortexResult<bool> {
×
UNCOV
13
        match array.validity_mask()? {
×
14
            Mask::AllFalse(_) => Ok(true),
×
UNCOV
15
            Mask::AllTrue(_) => Ok(array.boolean_buffer().iter().is_sorted()),
×
16
            Mask::Values(mask_values) => {
×
17
                let set_indices = mask_values.boolean_buffer().set_indices();
×
18
                let values = array.boolean_buffer();
×
19
                let values_iter = set_indices.map(|idx|
×
20
                    // Safety:
21
                    // All idxs are in-bounds for the array.
22
                    unsafe {
23
                        values.value_unchecked(idx)
×
24
                    });
×
25

26
                Ok(values_iter.is_sorted())
×
27
            }
28
        }
UNCOV
29
    }
×
30

31
    fn is_strict_sorted(&self, array: &BoolArray) -> VortexResult<bool> {
×
32
        match array.validity_mask()? {
×
33
            Mask::AllFalse(_) => Ok(false),
×
34
            Mask::AllTrue(_) => Ok(array.boolean_buffer().iter().is_strict_sorted()),
×
35
            Mask::Values(mask_values) => {
×
36
                let validity_buffer = mask_values.boolean_buffer();
×
37
                let values = array.boolean_buffer();
×
38

39
                Ok(validity_buffer
×
40
                    .iter()
×
41
                    .zip(values.iter())
×
42
                    .map(|(is_valid, value)| is_valid.then_some(value))
×
43
                    .is_strict_sorted())
×
44
            }
45
        }
46
    }
×
47
}
48

49
register_kernel!(IsSortedKernelAdapter(BoolVTable).lift());
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