[go: up one dir, main page]

arrow2 0.7.1

Unofficial implementation of Apache Arrow spec in safe Rust
Documentation
use arrow2::array::*;
use arrow2::compute::like::*;
use arrow2::error::Result;

#[test]
fn test_like_binary() -> Result<()> {
    let strings = BinaryArray::<i32>::from_slice(&["Arrow", "Arrow", "Arrow", "Arrow", "Ar"]);
    let patterns = BinaryArray::<i32>::from_slice(&["A%", "B%", "%r_ow", "A_", "A_"]);
    let result = like_binary(&strings, &patterns).unwrap();
    assert_eq!(
        result,
        BooleanArray::from_slice(&[true, false, true, false, true])
    );
    Ok(())
}

#[test]
fn test_nlike_binary() -> Result<()> {
    let strings = BinaryArray::<i32>::from_slice(&["Arrow", "Arrow", "Arrow", "Arrow", "Ar"]);
    let patterns = BinaryArray::<i32>::from_slice(&["A%", "B%", "%r_ow", "A_", "A_"]);
    let result = nlike_binary(&strings, &patterns).unwrap();
    assert_eq!(
        result,
        BooleanArray::from_slice(&[false, true, false, true, false])
    );
    Ok(())
}

#[test]
fn test_like_binary_scalar() -> Result<()> {
    let array = BinaryArray::<i32>::from_slice(&["Arrow", "Arrow", "Arrow", "BA"]);
    let result = like_binary_scalar(&array, b"A%").unwrap();
    assert_eq!(result, BooleanArray::from_slice(&[true, true, true, false]));
    Ok(())
}

#[test]
fn test_nlike_binary_scalar() -> Result<()> {
    let array = BinaryArray::<i32>::from_slice(&["Arrow", "Arrow", "Arrow", "BA"]);
    let result = nlike_binary_scalar(&array, "A%".as_bytes()).unwrap();
    assert_eq!(
        result,
        BooleanArray::from_slice(&[false, false, false, true])
    );
    Ok(())
}