arabic_pdf_to_text 0.1.0

A CLI tool to convert Arabic PDFs to text using Google's Gemini API
Documentation
pub fn chunk_pdf(data: &[u8], chunk_size: usize) -> Vec<Vec<u8>> {
    if chunk_size == 0 {
        return vec![data.to_vec()];
    }

    data.chunks(chunk_size)
        .map(|chunk| chunk.to_vec())
        .collect()
}

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

    #[test]
    fn test_chunk_pdf_exact_chunks() {
        let data = vec![1, 2, 3, 4, 5, 6];
        let chunks = chunk_pdf(&data, 2);

        assert_eq!(chunks.len(), 3);
        assert_eq!(chunks[0], vec![1, 2]);
        assert_eq!(chunks[1], vec![3, 4]);
        assert_eq!(chunks[2], vec![5, 6]);
    }

    #[test]
    fn test_chunk_pdf_uneven_chunks() {
        let data = vec![1, 2, 3, 4, 5];
        let chunks = chunk_pdf(&data, 2);

        assert_eq!(chunks.len(), 3);
        assert_eq!(chunks[0], vec![1, 2]);
        assert_eq!(chunks[1], vec![3, 4]);
        assert_eq!(chunks[2], vec![5]);
    }

    #[test]
    fn test_chunk_pdf_zero_size() {
        let data = vec![1, 2, 3];
        let chunks = chunk_pdf(&data, 0);

        assert_eq!(chunks.len(), 1);
        assert_eq!(chunks[0], vec![1, 2, 3]);
    }

    #[test]
    fn test_chunk_pdf_large_chunk_size() {
        let data = vec![1, 2, 3];
        let chunks = chunk_pdf(&data, 10);

        assert_eq!(chunks.len(), 1);
        assert_eq!(chunks[0], vec![1, 2, 3]);
    }
}