pdftract/examples/test_source.rs
jedarden db92403bd5
Some checks are pending
Schema Generation Validation / Validate JSON Schema (push) Waiting to run
Schema Generation Validation / Validate JSON Syntax (push) Waiting to run
chore(pdftract-36glh): remove unused JpxDecoder import and add verification note
- 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
2026-05-28 05:23:13 -04:00

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!");
}