- Remove unused jpx::JpxDecoder import from stream.rs (code uses fully qualified paths)
- Add notes/pdftract-36glh.md with acceptance criteria verification
The JPXDecode passthrough implementation was already complete in commit 4ba4687.
This change is minor cleanup only.
References: pdftract-36glh
40 lines
1.4 KiB
Rust
40 lines
1.4 KiB
Rust
// Test to verify source module is complete
|
|
use pdftract_core::source::{FileSource, MemorySource, MmapSource, PdfSource};
|
|
use std::io::Write;
|
|
use tempfile::NamedTempFile;
|
|
|
|
fn main() {
|
|
// Test MemorySource
|
|
let data = b"Hello, World!".to_vec();
|
|
let mem_source = MemorySource::new(data);
|
|
assert_eq!(mem_source.len(), 13);
|
|
let bytes = mem_source.read_range(0, 5).unwrap();
|
|
assert_eq!(&bytes[..], b"Hello");
|
|
println!("MemorySource: OK");
|
|
|
|
// Test MmapSource
|
|
let mut temp_file = NamedTempFile::new().unwrap();
|
|
temp_file.write_all(b"Hello from mmap!").unwrap();
|
|
let mmap_source = MmapSource::open(temp_file.path()).unwrap();
|
|
assert_eq!(mmap_source.len(), 16);
|
|
let bytes = mmap_source.read_range(0, 5).unwrap();
|
|
assert_eq!(&bytes[..], b"Hello");
|
|
println!("MmapSource: OK");
|
|
|
|
// Test FileSource
|
|
let mut temp_file = NamedTempFile::new().unwrap();
|
|
temp_file.write_all(b"Hello from file!").unwrap();
|
|
let file_source = FileSource::open(temp_file.path()).unwrap();
|
|
assert_eq!(file_source.len(), 16);
|
|
let bytes = file_source.read_range(0, 5).unwrap();
|
|
assert_eq!(&bytes[..], b"Hello");
|
|
println!("FileSource: OK");
|
|
|
|
// Test prefetch is no-op for local sources
|
|
mem_source.prefetch(0, 100);
|
|
mmap_source.prefetch(0, 100);
|
|
file_source.prefetch(0, 100);
|
|
println!("prefetch: OK");
|
|
|
|
println!("\nAll source implementations working!");
|
|
}
|