¿Cómo hacer un time de compilation constante NaN o POSITIVE_INFINITY en Kotlin?

Lo intenté:

import kotlin.Double.Companion.POSITIVE_INFINITY import kotlin.Double.Companion.NaN const val inf = POSITIVE_INFINITY const val nan = NaN 

Pero entiendo:

El inicializador de Const 'val' debe ser un valor constante


EDITAR:

La razón por la que necesito hacer esto es debido a las testings parametrizadas de Junit5 :

  @ParameterizedTest @ValueSource(doubles = doubleArrayOf(nan, inf, -2* epsilon, 1.5, -0.5, 1.0 + 2* epsilon)) fun ensureNotAProbability(number: Double) { ... } 

Debido a algunas limitaciones de las annotations de Java (descritas en esta respuesta SO ), las cosas "pasadas a una anotación" solo pueden ser constantes de time de compilation. Por lo tanto, necesitaría un time de compilation NaN, infinitos positivos y negativos.

Como solución alternativa, puede utilizar el hecho de que el estándar IEEE 754 garantiza que 0.0 / 0.0 sea ​​NaN y 1.0 / 0.0 sea ​​+ ∞:

 @Suppress("DIVISION_BY_ZERO") const val NAN: Double = 0.0 / 0.0 @Suppress("DIVISION_BY_ZERO") const val INFINITY: Double = 1.0 / 0.0 fun main(args: Array<String>) { println(NAN) // NaN println(INFINITY) // Infinity } 

No necesita networkingefinir nada. Solo importa con un alias :

 import kotlin.Double.Companion.POSITIVE_INFINITY as inf import kotlin.Double.Companion.NaN as nan 
  • Android: el código funciona con api 19 pero no con api 24
  • ¿Puede kotlin definir el método dynamic cuando la class init?
  • Orden de configuration de progtwigdores en Rx
  • Obtención de información de KProperty dentro de la propiedad delegada fuera de las funciones getValue () y setValue ()
  • Hacer clic en una vista de text para cambiar el fragment
  • Tamaño de file grande al convertir bitmap a PDF
  • Error: no se puede resolver la versión para la dependencia 'org.jetbrains.kotlin: kotlin-stdlib-jre7: jar'
  • Cómo inyectar el context DSL de JOOQ en la class Kotlin
  • Por qué este código no fue devuelto en la label en Kotlin
  • Cadena a bitmap en Kotlin
  • ¿TreeWalker no está trabajando con Kotlin / Gradle?