diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index d01684da1a0..2199b4dab41 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -2209,6 +2209,10 @@ task ieee754(type: KonanLocalTest) { source = "runtime/basic/ieee754.kt" } +standaloneTest("hypotenuse") { + source = "runtime/basic/hypot.kt" +} + task array_list1(type: KonanLocalTest) { goldValue = "OK\n" source = "runtime/collections/array_list1.kt" diff --git a/backend.native/tests/runtime/basic/hypot.kt b/backend.native/tests/runtime/basic/hypot.kt new file mode 100644 index 00000000000..9ac06f20301 --- /dev/null +++ b/backend.native/tests/runtime/basic/hypot.kt @@ -0,0 +1,25 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the LICENSE file. + */ + +import kotlin.test.* +import kotlin.math.* + +fun main() { + val hf = hypot(Float.NEGATIVE_INFINITY, Float.NaN) + println("float hypot: $hf ${hf.toRawBits().toString(16)}") + println("Float.NaN: ${Float.NaN.toRawBits().toString(16)}") + println("Float.+Inf: ${Float.POSITIVE_INFINITY} ${Float.POSITIVE_INFINITY.toRawBits().toString(16)}") + println("Float.-Inf: ${Float.NEGATIVE_INFINITY} ${Float.NEGATIVE_INFINITY.toRawBits().toUInt().toString(16)}") + println(Float.POSITIVE_INFINITY == Float.NEGATIVE_INFINITY) + assertEquals(Float.POSITIVE_INFINITY, hypot(Float.NEGATIVE_INFINITY, Float.NaN)) + + val hd = hypot(Double.NEGATIVE_INFINITY, Double.NaN) + println("Double hypot: $hd ${hd.toRawBits().toString(16)}") + println("Double.NaN: ${Double.NaN.toRawBits().toString(16)}") + println("Double.+Inf: ${Double.POSITIVE_INFINITY} ${Double.POSITIVE_INFINITY.toRawBits().toString(16)}") + println("Double.-Inf: ${Double.NEGATIVE_INFINITY} ${Double.NEGATIVE_INFINITY.toRawBits().toUInt().toString(16)}") + println(Double.POSITIVE_INFINITY == Double.NEGATIVE_INFINITY) + assertEquals(Double.POSITIVE_INFINITY, hypot(Double.NEGATIVE_INFINITY, Double.NaN)) +} \ No newline at end of file