Skip to content
This repository has been archived by the owner on Feb 18, 2024. It is now read-only.

Commit

Permalink
Moved.
Browse files Browse the repository at this point in the history
  • Loading branch information
jorgecarleitao committed Aug 15, 2021
1 parent f9f85ff commit 7446f30
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 93 deletions.
93 changes: 0 additions & 93 deletions src/bitmap/bitmap_ops.rs
Original file line number Diff line number Diff line change
Expand Up @@ -177,96 +177,3 @@ impl Not for &Bitmap {
unary(self, |a| !a)
}
}

#[cfg(test)]
mod test {
use super::*;

use crate::bitmap::Bitmap;
use crate::buffer::MutableBuffer;

fn create_bitmap<P: AsRef<[u8]>>(bytes: P, len: usize) -> Bitmap {
let buffer = MutableBuffer::<u8>::from(bytes.as_ref());
Bitmap::from_u8_buffer(buffer, len)
}

#[test]
fn test_eq() {
let lhs = create_bitmap([0b01101010], 8);
let rhs = create_bitmap([0b01001110], 8);
assert!(!eq(&lhs, &rhs));
assert!(eq(&lhs, &lhs));
}

#[test]
fn test_eq_len() {
let lhs = create_bitmap([0b01101010], 6);
let rhs = create_bitmap([0b00101010], 6);
assert!(eq(&lhs, &rhs));
let rhs = create_bitmap([0b00001010], 6);
assert!(!eq(&lhs, &rhs));
}

#[test]
fn test_eq_slice() {
let lhs = create_bitmap([0b10101010], 8).slice(1, 7);
let rhs = create_bitmap([0b10101011], 8).slice(1, 7);
assert!(eq(&lhs, &rhs));

let lhs = create_bitmap([0b10101010], 8).slice(2, 6);
let rhs = create_bitmap([0b10101110], 8).slice(2, 6);
assert!(!eq(&lhs, &rhs));
}

#[test]
fn test_and() {
let lhs = create_bitmap([0b01101010], 8);
let rhs = create_bitmap([0b01001110], 8);
let expected = create_bitmap([0b01001010], 8);
assert_eq!(&lhs & &rhs, expected);
}

#[test]
fn test_or_large() {
let input: &[u8] = &[
0b00000000, 0b00000001, 0b00000010, 0b00000100, 0b00001000, 0b00010000, 0b00100000,
0b01000010, 0b11111111,
];
let input1: &[u8] = &[
0b00000000, 0b00000001, 0b10000000, 0b10000000, 0b10000000, 0b10000000, 0b10000000,
0b10000000, 0b11111111,
];
let expected: &[u8] = &[
0b00000000, 0b00000001, 0b10000010, 0b10000100, 0b10001000, 0b10010000, 0b10100000,
0b11000010, 0b11111111,
];

let lhs = create_bitmap(input, 62);
let rhs = create_bitmap(input1, 62);
let expected = create_bitmap(expected, 62);
assert_eq!(&lhs | &rhs, expected);
}

#[test]
fn test_and_offset() {
let lhs = create_bitmap([0b01101011], 8).slice(1, 7);
let rhs = create_bitmap([0b01001111], 8).slice(1, 7);
let expected = create_bitmap([0b01001010], 8).slice(1, 7);
assert_eq!(&lhs & &rhs, expected);
}

#[test]
fn test_or() {
let lhs = create_bitmap([0b01101010], 8);
let rhs = create_bitmap([0b01001110], 8);
let expected = create_bitmap([0b01101110], 8);
assert_eq!(&lhs | &rhs, expected);
}

#[test]
fn test_not() {
let lhs = create_bitmap([0b01101010], 6);
let expected = create_bitmap([0b00010101], 6);
assert_eq!(!&lhs, expected);
}
}
86 changes: 86 additions & 0 deletions tests/it/bitmap/mod.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,89 @@
mod immutable;
mod mutable;
mod utils;

use arrow2::{bitmap::Bitmap, buffer::MutableBuffer};

fn create_bitmap<P: AsRef<[u8]>>(bytes: P, len: usize) -> Bitmap {
let buffer = MutableBuffer::<u8>::from(bytes.as_ref());
Bitmap::from_u8_buffer(buffer, len)
}

#[test]
fn eq() {
let lhs = create_bitmap([0b01101010], 8);
let rhs = create_bitmap([0b01001110], 8);
assert!(lhs != rhs);
}

#[test]
fn eq_len() {
let lhs = create_bitmap([0b01101010], 6);
let rhs = create_bitmap([0b00101010], 6);
assert!(lhs == rhs);
let rhs = create_bitmap([0b00001010], 6);
assert!(lhs != rhs);
}

#[test]
fn eq_slice() {
let lhs = create_bitmap([0b10101010], 8).slice(1, 7);
let rhs = create_bitmap([0b10101011], 8).slice(1, 7);
assert!(lhs == rhs);

let lhs = create_bitmap([0b10101010], 8).slice(2, 6);
let rhs = create_bitmap([0b10101110], 8).slice(2, 6);
assert!(lhs != rhs);
}

#[test]
fn and() {
let lhs = create_bitmap([0b01101010], 8);
let rhs = create_bitmap([0b01001110], 8);
let expected = create_bitmap([0b01001010], 8);
assert_eq!(&lhs & &rhs, expected);
}

#[test]
fn or_large() {
let input: &[u8] = &[
0b00000000, 0b00000001, 0b00000010, 0b00000100, 0b00001000, 0b00010000, 0b00100000,
0b01000010, 0b11111111,
];
let input1: &[u8] = &[
0b00000000, 0b00000001, 0b10000000, 0b10000000, 0b10000000, 0b10000000, 0b10000000,
0b10000000, 0b11111111,
];
let expected: &[u8] = &[
0b00000000, 0b00000001, 0b10000010, 0b10000100, 0b10001000, 0b10010000, 0b10100000,
0b11000010, 0b11111111,
];

let lhs = create_bitmap(input, 62);
let rhs = create_bitmap(input1, 62);
let expected = create_bitmap(expected, 62);
assert_eq!(&lhs | &rhs, expected);
}

#[test]
fn and_offset() {
let lhs = create_bitmap([0b01101011], 8).slice(1, 7);
let rhs = create_bitmap([0b01001111], 8).slice(1, 7);
let expected = create_bitmap([0b01001010], 8).slice(1, 7);
assert_eq!(&lhs & &rhs, expected);
}

#[test]
fn or() {
let lhs = create_bitmap([0b01101010], 8);
let rhs = create_bitmap([0b01001110], 8);
let expected = create_bitmap([0b01101110], 8);
assert_eq!(&lhs | &rhs, expected);
}

#[test]
fn not() {
let lhs = create_bitmap([0b01101010], 6);
let expected = create_bitmap([0b00010101], 6);
assert_eq!(!&lhs, expected);
}

0 comments on commit 7446f30

Please sign in to comment.