Module: wine Branch: master Commit: 6834b285d21aaa869f189073734b08ca73d759f6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6834b285d21aaa869f18907373...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Fri Apr 28 23:49:17 2017 +0200
d3dx9/tests: Use compare_float() in test_D3DXSHEvalConeLight().
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Matteo Bruni mbruni@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/d3dx9_36/tests/math.c | 59 ++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 25 deletions(-)
diff --git a/dlls/d3dx9_36/tests/math.c b/dlls/d3dx9_36/tests/math.c index 9f90d16..93d31a7 100644 --- a/dlls/d3dx9_36/tests/math.c +++ b/dlls/d3dx9_36/tests/math.c @@ -2616,9 +2616,14 @@ static void test_D3DXSHDot(void)
static void test_D3DXSHEvalConeLight(void) { + float bout[49], expected, gout[49], rout[49]; + unsigned int j, l, order; D3DXVECTOR3 dir; - FLOAT bout[49], expected, gout[49], rout[49]; - const FLOAT table[] = { + HRESULT hr; + BOOL equal; + + static const float table[] = + { /* Red colour */ 1.604815f, -3.131381f, 7.202175f, -2.870432f, 6.759296f, -16.959688f, 32.303082f, -15.546381f, -0.588878f, -5.902123f, 40.084042f, -77.423569f, @@ -2661,12 +2666,14 @@ static void test_D3DXSHEvalConeLight(void) 15.691326f, -26.775339f, 45.859665f, -24.544060f, -1.367048f, 4.013170f, -1.039392f, 8.582172f, -9.440103f, -117.862114f, 517.839600f, -820.820740f, 1374.188232f, -752.419067f, -45.114819f, 153.427063f, -53.766754f, 5.478452f, }; - struct + const struct + { + float *red_received, *green_received, *blue_received; + const float *red_expected, *green_expected, *blue_expected; + float radius, roffset, goffset, boffset; + } + test[] = { - FLOAT *red_received, *green_received, *blue_received; - const FLOAT *red_expected, *green_expected, *blue_expected; - FLOAT radius, roffset, goffset, boffset; - } test[] = { { rout, gout, bout, table, &table[72], &table[144], 0.5f, 1.01f, 1.02f, 1.03f, }, { rout, gout, bout, &table[36], &table[108], &table[180], 1.6f, 1.01f, 1.02f, 1.03f, }, { rout, rout, rout, &table[144], &table[144], &table[144], 0.5f, 1.03f, 1.03f, 1.03f, }, @@ -2676,9 +2683,8 @@ static void test_D3DXSHEvalConeLight(void) /* D3DXSHEvalConeLight accepts NULL green or blue colour. */ { rout, NULL, bout, table, NULL, &table[144], 0.5f, 1.01f, 0.0f, 1.03f, }, { rout, gout, NULL, table, &table[72], NULL, 0.5f, 1.01f, 1.02f, 0.0f, }, - { rout, NULL, NULL, table, NULL, NULL, 0.5f, 1.01f, 0.0f, 0.0f, }, }; - HRESULT hr; - unsigned int j, l, order; + { rout, NULL, NULL, table, NULL, NULL, 0.5f, 1.01f, 0.0f, 0.0f, }, + };
dir.x = 1.1f; dir.y = 1.2f; dir.z = 2.76f;
@@ -2704,8 +2710,9 @@ static void test_D3DXSHEvalConeLight(void) expected = j + test[l].roffset; else expected = test[l].red_expected[j]; - ok(relative_error(expected, test[l].red_received[j]) < admitted_error, - "Red: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, test[l].red_received[j]); + equal = compare_float(test[l].red_received[j], expected, 128); + ok(equal, "Red: case %u, order %u: expected[%u] = %.8e, received %.8e.\n", + l, order, j, expected, test[l].red_received[j]);
if (test[l].green_received) { @@ -2713,8 +2720,9 @@ static void test_D3DXSHEvalConeLight(void) expected = j + test[l].goffset; else expected = test[l].green_expected[j]; - ok(relative_error(expected, test[l].green_received[j]) < admitted_error, - "Green: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, test[l].green_received[j]); + equal = compare_float(test[l].green_received[j], expected, 64); + ok(equal, "Green: case %u, order %u: expected[%u] = %.8e, received %.8e.\n", + l, order, j, expected, test[l].green_received[j]); }
if (test[l].blue_received) @@ -2723,8 +2731,9 @@ static void test_D3DXSHEvalConeLight(void) expected = j + test[l].boffset; else expected = test[l].blue_expected[j]; - ok(relative_error(expected, test[l].blue_received[j]) < admitted_error, - "Blue: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, test[l].blue_received[j]); + equal = compare_float(test[l].blue_received[j], expected, 128); + ok(equal, "Blue: case %u, order %u: expected[%u] = %.8e, received %.8e.\n", + l, order, j, expected, test[l].blue_received[j]); } } } @@ -2751,17 +2760,17 @@ static void test_D3DXSHEvalConeLight(void)
for (j = 0; j < 49; j++) { - expected = red[j]; - ok(relative_error(expected, rout[j]) < admitted_error, - "Red: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, rout[j]); + equal = compare_float(red[j], rout[j], 0); + ok(equal, "Red: case %u, order %u: expected[%u] = %.8e, received %.8e.\n", + l, order, j, red[j], rout[j]);
- expected = green[j]; - ok(relative_error(expected, gout[j]) < admitted_error, - "Green: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, gout[j]); + equal = compare_float(green[j], gout[j], 0); + ok(equal, "Green: case %u, order %u: expected[%u] = %.8e, received %.8e.\n", + l, order, j, green[j], gout[j]);
- expected = blue[j]; - ok(relative_error(expected, bout[j]) < admitted_error, - "Blue: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, bout[j]); + equal = compare_float(blue[j], bout[j], 0); + ok(equal, "Blue: case %u, order %u: expected[%u] = %.8e, received %.8e.\n", + l, order, j, blue[j], bout[j]); } }