import pytest from ..helpers import Suite TYPE_LIST = ['f32', 'f64'] @pytest.mark.integration_test @pytest.mark.parametrize('type_', TYPE_LIST) def test_division_float(type_): code_py = f""" @exported def testEntry() -> {type_}: return 10.0 / 8.0 """ result = Suite(code_py).run_code() assert 1.25 == result.returned_value assert isinstance(result.returned_value, float) @pytest.mark.integration_test @pytest.mark.parametrize('type_', TYPE_LIST) def test_division_zero_let_it_crash_float(type_): code_py = f""" @exported def testEntry() -> {type_}: return 10.0 / 0.0 """ # WebAssembly dictates that float division follows the IEEE rules # https://www.w3.org/TR/wasm-core-1/#-hrefop-fdivmathrmfdiv_n-z_1-z_2 result = Suite(code_py).run_code() assert float('+inf') == result.returned_value