#![allow(clippy::all)]
use ahash::AHashSet;
use ragc_core::{StreamingQueueCompressor, StreamingQueueConfig};
#[test]
fn test_streaming_queue_basic_flow() {
let test_data = vec![
("sample1".to_string(), "chr1".to_string(), vec![0u8; 1000]), ("sample1".to_string(), "chr2".to_string(), vec![1u8; 1000]), ("sample2".to_string(), "chr1".to_string(), vec![2u8; 1000]), ];
let config = StreamingQueueConfig {
queue_capacity: 10 * 1024 * 1024, num_threads: 2,
verbosity: 0, ..Default::default()
};
let splitters = AHashSet::new(); let mut compressor = StreamingQueueCompressor::with_splitters(
"/tmp/test_streaming_queue.agc",
config,
splitters,
)
.expect("Failed to create compressor");
for (sample, contig, data) in test_data {
compressor
.push(sample, contig, data)
.expect("Failed to push contig");
}
compressor.finalize().expect("Failed to finalize");
}
#[test]
fn test_streaming_queue_stats() {
let config = StreamingQueueConfig {
queue_capacity: 1024,
num_threads: 1,
verbosity: 0,
..Default::default()
};
let compressor = StreamingQueueCompressor::with_splitters(
"/tmp/test_queue_stats.agc",
config,
AHashSet::new(),
)
.expect("Failed to create compressor");
let stats = compressor.queue_stats();
assert_eq!(stats.current_size_bytes, 0);
assert_eq!(stats.current_items, 0);
assert_eq!(stats.capacity_bytes, 1024);
assert!(!stats.is_closed);
}