| <!DOCTYPE html> |
| <html> |
| <meta charset=utf-8> |
| <meta name="timeout" content="long"> |
| <title>Test prefix/postfix.</title> |
| <script src="js/test-harness.js"></script> |
| <script src="../js/webgpu-functions.js"></script> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script> |
| const whlslTests = {}; |
| |
| whlslTests.floatMath = async () => { |
| let program = ` |
| bool foo() |
| { |
| return 42.5 == 42.5; |
| } |
| float bar(float x) |
| { |
| return x; |
| } |
| float foo6() |
| { |
| return bar(7.5); |
| } |
| float foo9() |
| { |
| return float(7.5); |
| } |
| float foo12() |
| { |
| return float(7); |
| } |
| float foo13() |
| { |
| float x = 7.5; |
| return float(x); |
| } |
| bool div() |
| { |
| return 0.5 / 2 == 0.25; |
| } |
| `; |
| |
| assert_equals(await callBoolFunction(program, "foo", []), true); |
| assert_equals(await callFloatFunction(program, "foo6", []), 7.5); |
| assert_equals(await callFloatFunction(program, "foo9", []), 7.5); |
| assert_equals(await callFloatFunction(program, "foo12", []), 7); |
| assert_equals(await callFloatFunction(program, "foo13", []), 7.5); |
| assert_equals(await callBoolFunction(program, "div", []), true); |
| |
| await checkFail( |
| ` |
| int bar(int x) |
| { |
| return x; |
| } |
| int foo() |
| { |
| bar(4.0); |
| } |
| `); |
| |
| await checkFail( |
| ` |
| int bar(int x) |
| { |
| return x; |
| } |
| int foo() |
| { |
| bar(4.0f); |
| } |
| `); |
| |
| await checkFail( |
| ` |
| uint bar(uint x) |
| { |
| return x; |
| } |
| int foo() |
| { |
| bar(4.0); |
| } |
| `); |
| |
| await checkFail( |
| ` |
| uint bar(uint x) |
| { |
| return x; |
| } |
| int foo() |
| { |
| bar(4.0f); |
| } |
| `); |
| } |
| |
| runTests(whlslTests); |
| </script> |
| </html> |