[3/3] gdiplus: Make GdipInvertMatrix test pass on native

James Hawkins truiken at gmail.com
Sat Jul 12 16:26:15 CDT 2008


On Sat, Jul 12, 2008 at 4:12 PM, Nikolay Sivov <bunglehead at gmail.com> wrote:
> Changelog:
>    - Make GdipInvertMatrix test pass on native
>
> ---
>  dlls/gdiplus/tests/matrix.c |   23 +++++++++++++++++------
>  1 files changed, 17 insertions(+), 6 deletions(-)
>
> diff --git a/dlls/gdiplus/tests/matrix.c b/dlls/gdiplus/tests/matrix.c
> index 16c1517..daf61ea 100644
> --- a/dlls/gdiplus/tests/matrix.c
> +++ b/dlls/gdiplus/tests/matrix.c
> @@ -27,6 +27,19 @@
>
>  #define expect(expected, got) ok(got == expected, "Expected %.8x, got %.8x\n", expected, got)
>
> +/* compare matrix data with some tolerance */
> +BOOL m_equalf(REAL *m1, REAL *m2)
> +{
> +    BOOL ret = TRUE;
> +    INT i;
> +
> +    for(i = 0; i < 6; i++){
> +        ret = ret && (fabsf(m1[i] - m2[i]) < 1e-5);
> +    }
> +
> +    return ret;
> +}
> +
>  static void test_constructor_destructor(void)
>  {
>     GpStatus status;
> @@ -119,12 +132,12 @@ static void test_isinvertible(void)
>     GdipDeleteMatrix(matrix);
>  }
>
> +static REAL minverted[] = {1.0/9.0, 2.0/9.0, 4.0/9.0, -1.0/9.0, -2.0, -1.0};
>  static void test_invert(void)
>  {
>     GpStatus status;
>     GpMatrix *matrix = NULL;
> -    GpMatrix *inverted = NULL;
> -    BOOL equal;
> +    REAL mdata[6];
>
>     /* NULL */
>     status = GdipInvertMatrix(NULL);
> @@ -141,11 +154,9 @@ static void test_invert(void)
>     status = GdipInvertMatrix(matrix);
>     expect(Ok, status);
>
> -    GdipCreateMatrix2(1.0/9.0, 2.0/9.0, 4.0/9.0, -1.0/9.0, -2.0, -1.0, &inverted);
> -    GdipIsMatrixEqual(matrix, inverted, &equal);
> -    expect(TRUE, equal);
> +    GdipGetMatrixElements(matrix, mdata);
> +    expect(TRUE, m_equalf(mdata, minverted));
>

Why are you creating a new function that allows tolerance when you
control the matrix you're comparing it to?  Allowing slop is
acceptable in some circumstances, but not in this case, when there is
one exact value (or matrix of values) returned.

-- 
James Hawkins



More information about the wine-devel mailing list