On Thu, 7 Sep 2023 18:26:50 GMT, Andy Goryachev <ango...@openjdk.org> wrote:

> Snapping introduces differences between computed values and snapped values, 
> so we need to use non-zero tolerance when checking for equality.  The maximum 
> tolerance is (1 / scale) - one display pixel scaled back to the local 
> coordinates.
> 
> The tests have been modified to use the scale-specific tolerance.
> 
> Tested with macOS at scale 1.0 and win11 at scales (100%, 125%, 150%, 175%).

The changes to the test look fine to me. I did ad a question about the new test 
utility method, but I'll leave it up to you as to whether and how you want to 
fix it.

tests/system/src/test/java/test/util/Util.java line 490:

> 488:                     double scale = win.getRenderScaleX();
> 489:                     // distance between pixels in the local (unscaled) 
> coordinates is (1 / scale)
> 490:                     return 1.0 / scale;

Is this computation what you want? This will give a smaller tolerance for a 
screen scale of, say, 2.0 (0.5) than it will for 1.0 (1). Intuitively, this 
seems backwards. For a screen scale of 1, a tolerance of 1 might be too large, 
whereas for a screen scale of 3, a tolerance of 0.3333 might be too small. If 
the goal is to account for the results of snapping, then would a fixed 
tolerance of 0.5 be better? It's possible I'm missing something.

-------------

Marked as reviewed by kcr (Lead).

PR Review: https://git.openjdk.org/jfx/pull/1234#pullrequestreview-1635833485
PR Review Comment: https://git.openjdk.org/jfx/pull/1234#discussion_r1331751243

Reply via email to