kevin.cianfarini
02/06/2025, 7:01 PM@Test fun foo() {
assertFails {
1 / 0
}
}
The thrown RuntimeError is not caught. Is this expected? Stacktrace in thread 🧵kevin.cianfarini
02/06/2025, 7:01 PMRuntimeError: divide by zero
at <alchemist_test>.kotlin.Int__div-impl (<wasm://wasm/><alchemist_test>-004f044e:wasm-function[2105]:0x347ba)
at <alchemist_test>.io.github.kevincianfarini.alchemist.SaturatingLongTest.dividing_by_double_zero_throws (<wasm://wasm/><alchemist_test>-004f044e:wasm-function[4933]:0x67b62)
at <alchemist_test>.io.github.kevincianfarini.alchemist.test fun$io.github.kevincianfarini.alchemist test fun$SaturatingLongTest test fun$dividing_by_double_zero_throws test fun.invoke (<wasm://wasm/><alchemist_test>-004f044e:wasm-function[4653]:0x5b3a1)
at <alchemist_test>.kotlin.test.TeamcityAdapter$test$lambda.invoke (<wasm://wasm/><alchemist_test>-004f044e:wasm-function[4228]:0x57519)
at <alchemist_test>.kotlin.test.TeamcityAdapterWithPromiseSupport.runOrScheduleNextWithResult (<wasm://wasm/><alchemist_test>-004f044e:wasm-function[4110]:0x55a28)
at <alchemist_test>.kotlin.test.TeamcityAdapterWithPromiseSupport.runOrScheduleNextWithResult (<wasm://wasm/><alchemist_test>-004f044e:wasm-function[4111]:0x55a66)
at <alchemist_test>.kotlin.test.TeamcityAdapter.test (<wasm://wasm/><alchemist_test>-004f044e:wasm-function[4251]:0x5908f)
at <alchemist_test>.kotlin.test.test (<wasm://wasm/><alchemist_test>-004f044e:wasm-function[4254]:0x592aa)
at <alchemist_test>.io.github.kevincianfarini.alchemist.test fun$io.github.kevincianfarini.alchemist test fun$SaturatingLongTest test fun.invoke (<wasm://wasm/><alchemist_test>-004f044e:wasm-function[4723]:0x5c285)
at <alchemist_test>.io.github.kevincianfarini.alchemist.test fun$io.github.kevincianfarini.alchemist test fun$SaturatingLongTest test fun.invoke (<wasm://wasm/><alchemist_test>-004f044e:wasm-function[4724]:0x5c2b6)Svyatoslav Kuzmich [JB]
02/06/2025, 7:02 PMkevin.cianfarini
02/06/2025, 7:03 PMSvyatoslav Kuzmich [JB]
02/06/2025, 7:05 PM/ are not implemented yet in Kotlin compiler.kevin.cianfarini
02/06/2025, 7:29 PM1 / 0 on JS (not wasmJs) doesn't throw at all?
assertFailsWith<ArithmeticException> {
1.0 / 0.0
}
output:
io.github.kevincianfarini.alchemist.SaturatingLongTest.dividing_by_double_zero_throws[js, node] FAILED
AssertionError: Expected an exception of class ArithmeticException to be thrown, but was completed successfully.
at DefaultJsAsserter.protoOf.fail_zdvzi9(/home/kevin/code/alchemist/build/compileSync/js/test/testDevelopmentExecutable/kotlin/js/src/main/kotlin/kotlin/test/JsImpl.kt:23)
at DefaultJsAsserter.protoOf.fail_o3vfxl(/home/kevin/code/alchemist/build/compileSync/js/test/testDevelopmentExecutable/kotlin/js/src/main/kotlin/kotlin/test/DefaultJsAsserter.kt:71)
at <global>.checkResultIsFailure(/home/kevin/code/alchemist/build/compileSync/js/test/testDevelopmentExecutable/kotlin/src/kotlin/util/Result.kt:36)Chrimaeon
02/06/2025, 7:36 PM1.0/0.0 === Infinitykevin.cianfarini
02/06/2025, 7:39 PMLong it isn't!
tests:
@Test
fun int_division_by_zero_fails_arithmetic_exception() {
assertFailsWith<ArithmeticException> {
1 / 0
}
}
@Test
fun long_division_by_zero_fails_artithmetic_exception() {
assertFailsWith<ArithmeticException> {
1L / 0L
}
}
Output:
io.github.kevincianfarini.alchemist.SaturatingLongTest.int_division_by_zero_fails_arithmetic_exception[js, node] FAILED
AssertionError: Expected an exception of class ArithmeticException to be thrown, but was completed successfully.
at DefaultJsAsserter.protoOf.fail_zdvzi9(/home/kevin/code/alchemist/build/compileSync/js/test/testDevelopmentExecutable/kotlin/js/src/main/kotlin/kotlin/test/JsImpl.kt:23)
at DefaultJsAsserter.protoOf.fail_o3vfxl(/home/kevin/code/alchemist/build/compileSync/js/test/testDevelopmentExecutable/kotlin/js/src/main/kotlin/kotlin/test/DefaultJsAsserter.kt:71)
at <global>.checkResultIsFailure(/home/kevin/code/alchemist/build/compileSync/js/test/testDevelopmentExecutable/kotlin/src/kotlin/util/Result.kt:36)
at SaturatingLongTest.protoOf.int_division_by_zero_fails_arithmetic_exception_de063(/home/kevin/code/alchemist/build/compileSync/js/test/testDevelopmentExecutable/kotlin/common/src/main/kotlin/kotlin/test/Assertions.kt:661)
at <global>.fn(kotlin/alchemist-test.js:4360)
at Context.<anonymous>(/home/kevin/code/alchemist/build/js/node_modules/kotlin-web-helpers/src/KotlinTestTeamCityConsoleAdapter.ts:72)
at <global>.processImmediate(node:internal/timers:478)
io.github.kevincianfarini.alchemist.SaturatingLongTest.long_division_by_zero_fails_artithmetic_exception[js, node] FAILED
AssertionError: Expected an exception of class ArithmeticException to be thrown, but was Exception: division by zero
at DefaultJsAsserter.protoOf.fail_zdvzi9(/home/kevin/code/alchemist/build/compileSync/js/test/testDevelopmentExecutable/kotlin/js/src/main/kotlin/kotlin/test/JsImpl.kt:23)
at <global>.checkResultIsFailure(/home/kevin/code/alchemist/build/compileSync/js/test/testDevelopmentExecutable/kotlin/src/kotlin/util/Result.kt:46)
at SaturatingLongTest.protoOf.long_division_by_zero_fails_artithmetic_exception_2udkyc(/home/kevin/code/alchemist/build/compileSync/js/test/testDevelopmentExecutable/kotlin/common/src/main/kotlin/kotlin/test/Assertions.kt:661)
at <global>.fn(kotlin/alchemist-test.js:4365)
at Context.<anonymous>(/home/kevin/code/alchemist/build/js/node_modules/kotlin-web-helpers/src/KotlinTestTeamCityConsoleAdapter.ts:72)
at <global>.processImmediate(node:internal/timers:478)kevin.cianfarini
02/06/2025, 7:39 PMChrimaeon
02/06/2025, 7:40 PMFor BigInt division, the result is the quotient of the two operands truncated towards zero, and the remainder is discarded. AI guess Koltinsis thrown if the divisorRangeErrorisy. This is because number division by zero returns0norInfinity, but BigInt has no concept of infinity.-Infinity
Long is mapped to BigIntkevin.cianfarini
02/06/2025, 7:40 PMkevin.cianfarini
02/06/2025, 7:40 PMIntkevin.cianfarini
02/06/2025, 7:41 PMkevin.cianfarini
02/06/2025, 7:45 PMException, but instead ArithmeticExcepion.kevin.cianfarini
02/06/2025, 7:45 PMSvyatoslav Kuzmich [JB]
02/06/2025, 7:50 PMkevin.cianfarini
04/30/2025, 7:38 PM