Refactor PDF Cleaning Tests for Improved Modularity and Error Handling + Add Rust Distribution README #18
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This pull request introduces a significant refactor of the existing PDF cleaning tests. The primary focus is on enhancing modularity, readability, and error handling, ensuring a more maintainable and robust testing framework. Key changes include the introduction of a
TestConfig
struct, the use ofResult
for error handling, performance measurement viastd::time::Instant
, and improved function naming and structuring.Also adds a dedicated README file for the Rust distribution.
Changes
TestConfig
Struct: Centralizes test configuration, making it easier to extend tests with new parameters or PDF sources.create_output_directory
), reading and cleaning PDFs (read_and_clean_pdf
), and storing PDFs (store_pdf
). This approach enhances code reusability and readability.unwrap()
andexpect()
to handling errors withResult
, providing a safer and more idiomatic way to handle potential failures in file operations.std::time::Instant
, offering valuable insights into the performance and efficiency of the PDF cleaning process.Testing
Example
Output example after running tests with
cargo test --package gulagcleaner_rs --lib -- tests --nocapture
: