Randomized tests in CppunitTest_basegfx
Tomaž Vajngerl
quikee at gmail.com
Thu Feb 23 11:03:20 UTC 2023
Hi,
On Thu, Feb 23, 2023 at 12:20 AM Michael Meeks <michael.meeks at collabora.com>
wrote:
> Ooh - interesting; so would using the boxclipper's
> getRandomOrdinal -
> which uses rand() and (I assume) could be consistently seeded ?
>
> Or could we consistently seed:
>
> comphelper::rng::uniform_size_distribution(
>
> To produced a known pattern ? or we could hard-code a set of
> numbers
> (which I guess) wouldn't provoke the problem into the test.
>
Well a unit test should be a set of known input (typical input values and
known corner cases) that asserts a known output, which then defines the
behaviour of the calling function or class. If you have random values for
an input you don't really have a "known" set of input values as they are
generated every time. Would be much better to change this test to a simple
set of known input values and also tackle the corner cases, which are
missing (but we obviously do hit one).
Also getRandomOrdinal(1) is essentially a NOOP - always returns 0, so the
aPolygonOffset was always offset by 0.5 from the other generated polygon,
which is not what the intended use case for the test was.
> Would be lovely to find the sequence that kills it of course,
>
It happens because getDeltaY() is 0.0, which is the "end - start" Y value
of an edge, but this one should never be zero (according to the comment).
I have run a simpler case in a loop but didn't get the value 0, so I could
write an edge case unit test. Deconstructing the code and unit test the
parts would probably be needed.
>
> Thoughts much appreciated,
>
> Michael.
>
> --
> michael.meeks at collabora.com <><, GM Collabora Productivity
> Hangout: mejmeeks at gmail.com, Skype: mmeeks
> (M) +44 7795 666 147 - timezone usually UK / Europe
>
Tomaž
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20230223/b341c736/attachment.htm>
More information about the LibreOffice
mailing list