| 520 | |
| 521 | #[test] |
| 522 | fn test_truncate() { |
| 523 | let b = MutableBuffer::from_iter([true, true, true, true]); |
| 524 | let mut builder = BooleanBufferBuilder::new_from_buffer(b, 2); |
| 525 | builder.advance(2); |
| 526 | let finished = builder.finish(); |
| 527 | assert_eq!(finished.values(), &[0b00000011]); |
| 528 | |
| 529 | let mut builder = BooleanBufferBuilder::new(10); |
| 530 | builder.append_n(5, true); |
| 531 | builder.resize(3); |
| 532 | builder.advance(2); |
| 533 | let finished = builder.finish(); |
| 534 | assert_eq!(finished.values(), &[0b00000111]); |
| 535 | |
| 536 | let mut builder = BooleanBufferBuilder::new(10); |
| 537 | builder.append_n(16, true); |
| 538 | assert_eq!(builder.as_slice(), &[0xFF, 0xFF]); |
| 539 | builder.truncate(20); |
| 540 | assert_eq!(builder.as_slice(), &[0xFF, 0xFF]); |
| 541 | builder.truncate(14); |
| 542 | assert_eq!(builder.as_slice(), &[0xFF, 0b00111111]); |
| 543 | builder.append(false); |
| 544 | builder.append(true); |
| 545 | assert_eq!(builder.as_slice(), &[0xFF, 0b10111111]); |
| 546 | builder.append_packed_range(0..3, &[0xFF]); |
| 547 | assert_eq!(builder.as_slice(), &[0xFF, 0b10111111, 0b00000111]); |
| 548 | builder.truncate(17); |
| 549 | assert_eq!(builder.as_slice(), &[0xFF, 0b10111111, 0b00000001]); |
| 550 | builder.append_packed_range(0..2, &[2]); |
| 551 | assert_eq!(builder.as_slice(), &[0xFF, 0b10111111, 0b0000101]); |
| 552 | builder.truncate(8); |
| 553 | assert_eq!(builder.as_slice(), &[0xFF]); |
| 554 | builder.resize(14); |
| 555 | assert_eq!(builder.as_slice(), &[0xFF, 0x00]); |
| 556 | builder.truncate(0); |
| 557 | assert_eq!(builder.as_slice(), &[]); |
| 558 | } |
| 559 | |
| 560 | #[test] |
| 561 | fn test_boolean_builder_increases_buffer_len() { |