applitools / applitools/ImageTester

Add CLI option to group X number of PDF pages into single checkpoints

Open
#23 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
11
Forks
11
PR merge metrics
No merged PRs in 30d

Description

Problem: The ImageTester currently converts each PDF page into a single image/test. If changes occur (content added/removed) after baselines are created, the diffs cascade across downstream pages where the change or changes were introduced. e.g., content from page 3 is pushed to page 4, and so on.

Enhancement: Add an argument to group by X (e.g. 10 pages) number of pages. For example, the 1st 10 pages are combined into a single checkpoint, 11-21 into checkpoint 2, and so on. There could be logic added to calculate the number of pages per group by measuring the height of each page (they should be the same in theory). When it reaches 15k pixels, that would be the group. Furthermore, users can use ignore displacements to filter out displaced diffs, making it easier to see what changed.

This, of course, won't fix the issue entirely, as large PDFs will have issues at a certain grouped checkpoint. But it is an improvement of how it works now, IMO. There might be other things that could be done, such as lowering the resolution, converting the images to thumbnails, and thus allowing more pages to be grouped. Just some thoughts.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the ImageTester CLI entry point and locate the PDF page conversion and checkpoint creation flow. Define how an X-page grouping option should interact with page heights and displacement filtering, then verify that PDFs produce grouped checkpoints without changing existing behavior when the option is unused.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
cli, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.