Relinking spec tests

This commit is contained in:
victor.petukhov
2019-08-12 12:06:17 +03:00
parent 8465d690f1
commit d8e5b068d5
590 changed files with 3720 additions and 10085 deletions
@@ -0,0 +1,42 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 1
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the class.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
open class `true` {
val x1 = true
}
internal open class A: `true`() {
val x2 = false
}
annotation class `false`(val x2: Boolean)
@`false`(false) internal class B: @`false`(false) A() {}
@`false`(true) interface C
fun box(): String? {
val o1 = `true`()
val o2 = A()
val o3 = B()
if (o1.x1 != true) return null
if (o2.x1 != true || o2.x2 != false || o3.x2 != false || o3.x1 != true) return null
if (!checkAnnotation("B", "false")) return null
if (!checkAnnotation("C", "false")) return null
if (!checkSuperClass(B::class, "A")) return null
if (!checkSuperTypeAnnotation(B::class, "A", "false")) return null
if (!checkClassName(`false`::class, "false")) return null
if (!checkClassName(`true`::class, "true")) return null
return "OK"
}
@@ -0,0 +1,31 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 10
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the companionObject.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
package org.jetbrains.`true`
open class A {
companion object `false` {
}
}
class B {
companion object `true`: A() {
}
}
fun box(): String? {
if (!checkCompanionObjectName(A::class, "org.jetbrains.true.A.false")) return null
if (!checkCompanionObjectName(B::class, "org.jetbrains.true.B.true")) return null
return "OK"
}
@@ -0,0 +1,40 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 11
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the function.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
fun `true`(): Boolean {
return true
}
fun Boolean.`false`() = true
fun <T> T.`true`() = listOf(0).`false`()
inline fun <reified T, K> K?.`false`(x1: T = 10 as T)
where K : List<T>,
K : Iterable<T>,
T : Comparable<T>,
T : Number = false
fun box(): String? {
if (!`true`()) return null
if (null.`false`<Int, List<Int>>()) return null
if (false.`true`()) return null
if (!false.`false`()) return null
if (Any().`true`()) return null
if (!checkFunctionName(::`true`, "true")) return null
if (!checkFunctionName(Boolean::`false`, "false")) return null
if (!checkFunctionName(Boolean::`true`, "true")) return null
if (!checkFunctionName(List<Int>::`false`, "false")) return null
if (!checkFunctionName(Nothing?::`true`, "true")) return null
return "OK"
}
@@ -0,0 +1,44 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 12
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the setter.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
class A {
var x1: String = "100"
set(`true`) {
field = "$`true` 10"
}
}
object B {
var x2: String = "101"
set(`false`) = kotlin.Unit
}
var x3: String = "102"
set(`true`) {
field = "${`true`} 11"
}
fun box(): String? {
val a = A()
a.x1 = "0"
B.x2 = "1"
x3 = "2"
if (a.x1 != "0 10") return null
if (B.x2 != "101") return null
if (x3 != "2 11") return null
if (!checkSetterParameterName(A::x1, "true")) return null
if (!checkSetterParameterName(B::x2, "false")) return null
if (!checkSetterParameterName(::x3, "true")) return null
return "OK"
}
@@ -0,0 +1,119 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 13
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the simpleUserType.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
package org.jetbrains.`true`
open class `false`
open class `true`<T>
typealias D<`false`> = `true`<`false`>
inline fun <reified `true`, reified `false`> f1() =
when (`false`()) {
is `true` -> true
is `false` -> false
else -> false
}
inline fun <reified T : D<`false`>> T.f2(value: T) = value is `false`
class A<K: List<out `true`<out String>>> {
val x = true
}
class B<K, T: A<List<out `true`<String>>>> {
var x = false
}
fun <T : org.jetbrains.`true`.`false`> T.f3() = false
fun f4(x1: List<out `true`<String>>): Boolean {
return true
}
fun f5(x1: List<List<List<`false`?>>>) = false
fun f6(x1: `false`) = false
fun f7(x1: `true`<*>) = true
fun f8(x1: `true`<out Any>) = false
fun f9(x1: `true`<out List<`true`<*>>>) = true
val x1: List<`false`?> = listOf(`false`(), null, `false`())
lateinit var x2: List<`true`<out Number>?>
fun box(): String? {
x2 = listOf(`true`<Int>(), null, `true`())
if (!f1<`false`, `true`<`false`>>()) return null
if (`true`<`false`>().f2(`true`())) return null
if (!A<List<`true`<String>>>().x) return null
if (B<`false`, A<List<`true`<String>>>>().x) return null
if (`false`().f3()) return null
if (!f4(listOf(`true`()))) return null
if (f5(listOf(listOf(listOf(null, `false`(), null, `false`()))))) return null
if (f6(`false`())) return null
if (!f7(`true`<Nothing>())) return null
if (f8(`true`<`false`>())) return null
if (!f9(`true`<List<`true`<`false`>>>())) return null
if (x1.containsAll(listOf(`false`(), null, `false`()))) return null
if (x2.containsAll(listOf(`true`<Int>(), null, `true`()))) return null
if (!checkCallableTypeParametersWithUpperBounds(
`true`<`false`>::f2,
listOf(
Pair("T", listOf("org.jetbrains.`true`.D<org.jetbrains.`true`.`false`> /* = org.jetbrains.`true`.`true`<org.jetbrains.`true`.`false`> */"))
)
)) return null
if (!checkClassTypeParametersWithUpperBounds(
A::class,
listOf(
Pair("K", listOf("kotlin.collections.List<out org.jetbrains.`true`.`true`<out kotlin.String>>"))
)
)) return null
if (!checkClassTypeParametersWithUpperBounds(
B::class,
listOf(
Pair("T", listOf("org.jetbrains.`true`.A<kotlin.collections.List<out org.jetbrains.`true`.`true`<kotlin.String>>>"))
)
)) return null
if (!checkCallableTypeParametersWithUpperBounds(
`false`::f3,
listOf(
Pair("T", listOf("org.jetbrains.`true`.`false`"))
)
)) return null
if (!checkParameterType(::f4, "x1", "kotlin.collections.List<out org.jetbrains.`true`.`true`<kotlin.String>>")) return null
if (!checkParameterType(::f5, "x1", "kotlin.collections.List<kotlin.collections.List<kotlin.collections.List<org.jetbrains.`true`.`false`?>>>")) return null
if (!checkPropertyType(::x1, "kotlin.collections.List<org.jetbrains.`true`.`false`?>")) return null
if (!checkPropertyType(::x2, "kotlin.collections.List<org.jetbrains.`true`.`true`<out kotlin.Number>?>")) return null
if (!checkParameterType(::f6, "x1", "org.jetbrains.`true`.`false`")) return null
if (!checkParameterType(::f7, "x1", "org.jetbrains.`true`.`true`<*>")) return null
if (!checkParameterType(::f8, "x1", "org.jetbrains.`true`.`true`<out kotlin.Any>")) return null
if (!checkParameterType(::f9, "x1", "org.jetbrains.`true`.`true`<out kotlin.collections.List<org.jetbrains.`true`.`true`<*>>>")) return null
return "OK"
}
@@ -0,0 +1,57 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 14
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the typeParameter.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
package org.jetbrains.`true`
open class `false` {
val x1 = false
}
open class `true`<T> {
val x1 = true
}
typealias A<`false`> = `true`<`false`>
class B<`true`, `false`> {
val x1: `true` = `true`<`false`>() as `true`
val x2: A<`false`> = `true`<`true`>() as A<`false`>
val x3: `false` = `false`() as `false`
}
fun <`true`: Number> f1(): Boolean {
val x1: `true` = 10 as `true`
return false
}
inline fun <reified `false`, reified `true` : Any> `false`.f2() = true
val <`false`> `false`.x1: `true`<Int>
get() = `true`<Int>()
fun box(): String? {
val b = B<`true`<`false`>, `false`>()
if (!null.x1.x1) return null
if (!b.x1.x1 || !b.x2.x1 || b.x3.x1) return null
if (f1<Byte>()) return null
if (!0.f2<Int, `false`>()) return null
if (!(-1).x1.x1) return null
if (!checkCallableTypeParameter(Any::x1, "false")) return null
if (!checkClassTypeParameters(B::class, listOf("false", "true"))) return null
if (!checkTypeProperties(B::class, listOf(
Pair("x1", "`true`"),
Pair("x2", "org.jetbrains.`true`.A<`false`> /* = org.jetbrains.`true`.`true`<`false`> */"),
Pair("x3", "`false`")
))) return null
return "OK"
}
@@ -0,0 +1,38 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 15
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the parameter.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
fun f1(`true`: Boolean) = !!!`true`
fun f2(`false`: Boolean, `true`: Boolean) = `false` && `true`
fun f3(`false`: Boolean, `true`: Boolean = `false`) = `false` || !`true`
class A {
var x1: Boolean = false
set(`false`) {
field = !`false`
}
}
fun box(): String? {
val a = A()
a.x1 = false
if (f1(true)) return null
if (!f2(true, true)) return null
if (f3(false, true)) return null
if (!a.x1) return null
if (!checkParameter(::f1, "true")) return null
if (!checkParameters(::f2, listOf("false", "true"))) return null
if (!checkParameters(::f3, listOf("false", "true"))) return null
if (!checkSetterParameterName(A::x1, "false")) return null
return "OK"
}
@@ -0,0 +1,28 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 16
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the fileAnnotationComplex.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
@file:[org.jetbrains.`true`.`false`() `true`]
package org.jetbrains.`true`
@Target(AnnotationTarget.FILE)
annotation class `false`
@Target(AnnotationTarget.FILE)
annotation class `true`
fun box(): String? {
if (!checkFileAnnotations("org.jetbrains.true._2_16Kt", listOf("org.jetbrains.true.false", "true"))) return null
if (!checkPackageName("org.jetbrains.true._2_16Kt", "org.jetbrains.true")) return null
if (!checkClassName(`false`::class, "org.jetbrains.true.false")) return null
return "OK"
}
@@ -0,0 +1,32 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 17
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the object.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
open class A {
val x1 = true
}
final object `true` {
val x1 = false
}
object `false` : A() {
val x2 = false
}
fun box(): String? {
if (`true`.x1) return null
if (!`false`.x1 || `false`.x2) return null
if (!checkClassName(`true`::class, "true")) return null
if (!checkClassName(`false`::class, "false")) return null
return "OK"
}
@@ -0,0 +1,26 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 18
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the typeAlias.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
typealias `true` = Boolean
internal typealias `false`<`true`> = Map<`true`, List<`true`>?>
fun box(): String? {
val x1: `false`<Boolean> = mapOf(true to listOf(false, false), false to null)
val x2: `true` = false
if (!x1[true]!!.containsAll(listOf(false, false)) || x1[false] != null) return null
if (x2) return null
if (!checkClassName(`true`::class, "kotlin.Boolean")) return null
return "OK"
}
@@ -0,0 +1,56 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 19
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the import.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
*/
// FILE: 2_19_1.kt
package org.jetbrains.`true`.`false`
val x1 = false
// FILE: 2_19_2.kt
val `true` = false
// FILE: 2_19_3.kt
package `false`;
val x3 = true
// FILE: 2_19_4.kt
package `true`
val x4 = false
// FILE: 2_19_5.kt
package org.jetbrains.kotlin
val x5 = true
// FILE: 2_19_6.kt
val `false` = false
// FILE: 2_19_7.kt
package part_1
import org.jetbrains.`true`.`false`.*
import `true`
import `false`.*;
import `true`.*import `false`
fun box(): String? {
if (x1 || `true` || !x3 || x4 || `false`) return null
return "OK"
}
@@ -0,0 +1,34 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 2
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the labelReference.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
*/
fun `true`() {
val l = `false`@ {
return@`false`
}
l()
return@`true`
}
fun box(): String? {
`true`()
var i = 0
`false`@ while (i < 10) {
i++
if (i <= 7) {
continue@`false`
}
if (i > 5) {
break@`false`
}
}
return "OK"
}
@@ -0,0 +1,22 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 20
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the infixFunctionCall.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
*/
infix fun Int.`true`(value: Int) = value > 100
infix fun Int.`false`(value: Int): Int {
return value - 90
}
fun box(): String? {
if (1 + 1 `true` -1001020) return null
if (1 + 1 `false` 2004 `true` -0) return null
return "OK"
}
@@ -0,0 +1,32 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 21
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the catchBlock.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
*/
annotation class A
fun box(): String? {
var value_1 = false
var value_2 = true
try {
throw Exception()
} catch (`true`: Throwable) {
value_1 = true
}
try {
throw Exception()
} catch (@A `false`: Throwable) {
value_2 = false
}
if (!value_1 || value_2) return null
return "OK"
}
@@ -0,0 +1,50 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 22
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the labelDefinition.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
*/
@Retention(AnnotationRetention.SOURCE)
@Target(AnnotationTarget.EXPRESSION)
annotation class Foo
fun box(): String? {
val lambda_1 = `true`@ {
return@`true` false
}
val lambda_2 = @Foo `false`@ { Boolean
return@`false` false
}
val x1 = `true`@ true
var i = 0
`false`@ while (true) {
i++
if (i < 4) continue@`false`
i++
if (i > 15) break@`false`
}
var j = 0
`true`@ for (k in 0..20) {
j++
if (k < 4) continue@`true`
j++
if (k > 15) break@`true`
}
if (lambda_1()) return null
if (lambda_2()) return null
if (!x1) return null
if (i != 17) return null
if (j != 30) return null
return "OK"
}
@@ -0,0 +1,30 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 23
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the atomicExpression.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
*/
fun box(): String? {
val `true` = 10
val `false` = "."
val value_1 = `true` - 100 % `true`
val value_2 = `true`.dec()
val value_3 = "$`false` 10"
val value_4 = "${`false`}"
val value_5 = `false` + " 11..." + `false` + "1"
val value_6 = `true`
if (value_1 != 10) return null
if (value_2 != 9) return null
if (value_3 != ". 10") return null
if (value_4 != ".") return null
if (value_5 != ". 11....1") return null
if (value_6 != 10) return null
return "OK"
}
@@ -0,0 +1,43 @@
// WITH_RUNTIME
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 24
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the variableDeclarationEntry.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
*/
val `true` = {`false`: Boolean -> !`false` }
fun f1(value: Pair<String, String>): Boolean {
val (`false`, `true`) = value
if (`false` != "1") return false
if (`true` != "2") return false
return true
}
fun box(): String? {
var i = 0
for (`false`: Int in 0..10) {
i++
}
if (!`true`(false)) return null
val `true` = { `false`: Boolean, `true`: Int -> true }
var `false`: Boolean
`false` = false
if (!f1(Pair("1", "2"))) return null
if (i != 11) return null
if (!`true`(false, 10)) return null
if (`false`) return null
return "OK"
}
@@ -0,0 +1,27 @@
// WITH_RUNTIME
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 25
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the valueArgument.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
*/
fun f1(`true`: Boolean, `false`: Boolean) = `true` && !!!`false`
fun f2(`true`: Boolean): Boolean {
return !`true`
}
fun f3(vararg `false`: Boolean, `true`: Boolean) = `false`.any { it } && `true`
fun box(): String? {
if (f1(`true` = false, `false` = true)) return null
if (!f2(`true` = false && true || true && false)) return null
if (!f3(`false` = *booleanArrayOf(true, false, false, true), `true` = true)) return null
return "OK"
}
@@ -0,0 +1,36 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 26
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the callableReference.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
val Boolean.`true`: Boolean
get() {
return true
}
val Boolean?.`false`: Boolean
get() {
return false
}
fun Int?.`true`(x: Boolean): Boolean {
return !x
}
fun box(): String? {
if (!false.`true` || false.`false` || !0.`true`(false)) return null
if (!checkCallableName(Boolean::`true`, "true") || !Boolean::`true`.get(true)) return null
if (!checkCallableName(Boolean????::`false`, "false") || Boolean????::`false`.get(false)) return null
if (!checkCallableName(Boolean????::`false`::equals.call(false)::`true`, "true")
|| !Boolean????::`false`::equals.call(false)::`true`.get()) return null
if (!checkCallableName(Int?::`true`, "true") || Int?::`true`.call(10, true)) return null
return "OK"
}
@@ -0,0 +1,63 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 3
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the typeConstraint.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
class A <`true`, `false`>
where `true` : CharSequence,
`false` : Comparable<`true`> {
fun getValue() = false
}
annotation class B <`true`>
where `true` : CharSequence,
@A<List<Nothing?>> `true` : Comparable<`true`> {
}
annotation class C <`false`, `true`> where @property:C `false` : CharSequence, `true` : Comparable<`true`> {
}
fun <`false`, `true`> d(): Boolean
where `false` : Any,
`false` : Iterable<*>,
`false` : Collection<*>,
`false` : MutableCollection<*>,
`true` : Comparable<`false`> = true
fun box(): String? {
if (!d<MutableSet<Any>, Comparable<MutableSet<Any>>>()) return null
if (A<String, String>().getValue()) return null
if (!checkClassTypeParametersWithUpperBounds(
A::class,
listOf(
Pair("true", listOf("kotlin.CharSequence")),
Pair("false", listOf("kotlin.Comparable<`true`>"))
)
)) return null
if (!checkClassTypeParametersWithUpperBounds(
B::class,
listOf(
Pair("true", listOf("kotlin.CharSequence", "kotlin.Comparable<`true`>"))
)
)) return null
if (!checkClassTypeParametersWithUpperBounds(
C::class,
listOf(
Pair("false", listOf("kotlin.CharSequence")),
Pair("true", listOf("kotlin.Comparable<`true`>"))
)
)) return null
return "OK"
}
@@ -0,0 +1,27 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 4
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the fileAnnotationSimple.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
@file:`true`
@file:`false`
@Target(AnnotationTarget.FILE)
annotation class `true`
@Target(AnnotationTarget.FILE)
annotation class `false`
fun box(): String? {
if (!checkFileAnnotations("_2_4Kt", listOf("true", "false"))) return null
if (!checkClassName(`true`::class, "true")) return null
if (!checkClassName(`false`::class, "false")) return null
return "OK"
}
@@ -0,0 +1,18 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 5
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the packageComplex.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
package org.jetbrains.`true`
fun box(): String? {
if (!checkPackageName("org.jetbrains.true._2_5Kt", "org.jetbrains.true")) return null
return "OK"
}
@@ -0,0 +1,18 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 6
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the packageSimple.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
package `true`
fun box(): String? {
if (!checkPackageName("true._2_6Kt", "true")) return null
return "OK"
}
@@ -0,0 +1,24 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 7
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the enumEntry.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
*/
enum class A(val x: Boolean) {
`true`(false),
`false`(true);
}
fun box(): String? {
if (A.`true`.x) return null
if (!A.`false`.x) return null
if (A.`true`.name != "true") return null
if (A.`false`.name != "false") return null
return "OK"
}
@@ -0,0 +1,27 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 8
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the stringTemplateElement.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
*/
fun box(): String? {
val `true` = "0"
val `false` = "1"
val x1 = "${`false`}"
val x2 = "..." + "...$`true`..." + "..."
var x3 = "$`false`${`true`}$`false`"
if (`false` != "1") return null
if (`true` != "0") return null
if (x1 != "1") return null
if (x2 != "......0......") return null
if (x3 != "101") return null
return "OK"
}
@@ -0,0 +1,61 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 2
* NUMBER: 9
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the unescapedAnnotation.
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY!
* HELPERS: REFLECT
*/
package org.jetbrains.`true`
annotation class `false`
annotation class `true` <T> (val a: String)
class A {
@field:`false`
val x1: Int = 0
@setparam:`false`
var x2: Int = 1
val @receiver:org.jetbrains.`true`.`true`<List<Int>>("false") String.x3: Int
get() {
return 2
}
@org.jetbrains.`true`.`true`<Int>("1")
val x4: Int = 3
@`false`
val x5: Int = 4
val x6: Int = "...".x3
}
@`false` val x6 = 5
@org.jetbrains.`true`.`true`<`false`>(".") fun f1() = false
fun box(): String? {
val a = A()
if (a.x1 != 0 || a.x2 != 1 || a.x6 != 2 || a.x4 != 3 || a.x5 != 4 || x6 != 5) return null
if (f1()) return null
if (!checkProperties(A::class, listOf("x1", "x2", "x3", "x4", "x5"))) return null
if (!checkPropertiesWithAnnotation(
A::class,
listOf(
Pair("x4", listOf("org.jetbrains.true.true")),
Pair("x5", listOf("org.jetbrains.true.false"))
)
)) return null
if (!checkPropertyAnnotation(::x6, "org.jetbrains.true.false")) return null
if (!checkFunctionAnnotation(::f1, "org.jetbrains.true.true")) return null
return "OK"
}
@@ -0,0 +1,164 @@
{
"1": {
"pos": {
"2": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the companionObject.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the variableDeclarationEntry.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the class.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the infixFunctionCall.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the typeParameter.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the packageComplex.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the catchBlock.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the parameter.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the fileAnnotationSimple.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the function.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the valueArgument.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the unescapedAnnotation.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the typeAlias.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the stringTemplateElement.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the import.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the labelDefinition.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the fileAnnotationComplex.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the enumEntry.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the setter.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the callableReference.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the typeConstraint.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the simpleUserType.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the labelReference.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the atomicExpression.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the object.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "The use of Boolean literals as the identifier (with backtick) in the packageSimple.",
"unexpectedBehaviour": false
}
]
}
}
}
@@ -0,0 +1,98 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, integer-literals, binary-integer-literals -> paragraph 1 -> sentence 1
* NUMBER: 1
* DESCRIPTION: Sequences with binary digit symbols.
*/
val value_1 = 0b1110001100
val value_2 = 0B11000110
val value_3 = 0b100011
val value_7 = 0B1000
val value_8 = 0b110001
val value_9 = 0b01100011
val value_10 = 0B0
val value_11 = 0b1
val value_12 = 0b100000
val value_13 = 0B1000001
val value_14 = 0B0000000
val value_16 = 0b00000010
val value_17 = 0b001101
val value_18 = 0B001101
val value_19 = 0b0011
val value_23 = 0B00000000
val value_24 = 0b111
val value_25 = 0b01111111110
val value_26 = 0b0111000110001101
val value_27 = 0b0111000110001101
val value_28 = 0B000000
val value_29 = 0b011101
val value_30 = 0b00
val value_31 = 0B01
val value_32 = 0b010010010000
val value_33 = 0B000000000000
val value_34 = 0b111001
fun box(): String? {
val value_4 = 0B0001
val value_5 = 0B00
val value_6 = 0b00
val value_15 = 0b0000001000000
val value_20 = 0B0
val value_21 = 0b0
val value_22 = 0b00000000
val value_35 = 0b011110000111110
val value_36 = 0B00000000
val value_37 = 0b00000000
val value_38 = 0b000000010000000
val value_39 = 0b000
if (value_1 != 0b1110001100 || value_1 != 908) return null
if (value_2 != 0B11000110 || value_2 != 198) return null
if (value_3 != 0b100011 || value_3 != 35) return null
if (value_4 != 0B0001 || value_4 != 1) return null
if (value_5 != 0B00 || value_5 != 0) return null
if (value_6 != 0b00 || value_6 != 0) return null
if (value_7 != 0B1000 || value_7 != 8) return null
if (value_8 != 0b110001 || value_8 != 49) return null
if (value_9 != 0b01100011 || value_9 != 99) return null
if (value_10 != 0B0 || value_10 != 0) return null
if (value_11 != 0b1 || value_11 != 1) return null
if (value_12 != 0b100000 || value_12 != 32) return null
if (value_13 != 0B1000001 || value_13 != 65) return null
if (value_14 != 0B0000000 || value_14 != 0) return null
if (value_15 != 0b0000001000000 || value_15 != 64) return null
if (value_16 != 0b00000010 || value_16 != 2) return null
if (value_17 != 0b001101 || value_17 != 13) return null
if (value_18 != 0B001101 || value_18 != 13) return null
if (value_19 != 0b0011 || value_19 != 3) return null
if (value_20 != 0B0 || value_20 != 0) return null
if (value_21 != 0b0 || value_21 != 0) return null
if (value_22 != 0b00000000 || value_22 != 0) return null
if (value_23 != 0B00000000 || value_23 != 0) return null
if (value_24 != 0b111 || value_24 != 7) return null
if (value_25 != 0b01111111110 || value_25 != 1022) return null
if (value_26 != 0b0111000110001101 || value_26 != 29069) return null
if (value_27 != 0b0111000110001101 || value_27 != 29069) return null
if (value_28 != 0B000000 || value_28 != 0) return null
if (value_29 != 0b011101 || value_29 != 29) return null
if (value_30 != 0b00 || value_30 != 0) return null
if (value_31 != 0B01 || value_31 != 1) return null
if (value_32 != 0b010010010000 || value_32 != 1168) return null
if (value_33 != 0B000000000000 || value_33 != 0) return null
if (value_34 != 0b111001 || value_34 != 57) return null
if (value_35 != 0b011110000111110 || value_35 != 15422) return null
if (value_36 != 0B00000000 || value_36 != 0) return null
if (value_37 != 0b00000000 || value_37 != 0) return null
if (value_38 != 0b000000010000000 || value_38 != 128) return null
if (value_39 != 0b000 || value_39 != 0) return null
return "OK"
}
@@ -0,0 +1,33 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, integer-literals, binary-integer-literals -> paragraph 1 -> sentence 2
* NUMBER: 1
* DESCRIPTION: Sequences with binary digit symbols separated by underscores.
*/
val value_1 = 0b1_110110100
val value_2 = 0b1_______1011010
val value_3 = 0b1_0_1_1_0_1
val value_4 = 0b0_______1_______1_______0
val value_5 = 0b1__________________________________________________________________________________________________1
val value_6 = 0b0_______0
fun box(): String? {
val value_7 = 0B0_0
val value_8 = 0b1_______________________________________________________________________________________________________________________________________________________0
val value_9 = 0b1_00000000000000_1
if (value_1 != 0b1110110100 || value_1 != 0B1_110110100 || value_1 != 948) return null
if (value_2 != 0b11011010 || value_2 != 0b1_______1011010 || value_2 != 218) return null
if (value_3 != 0b101101 || value_3 != 0b1_0_1_1_0_1 || value_3 != 45) return null
if (value_4 != 0b0110 || value_4 != 0B0_______1_______1_______0 || value_4 != 6) return null
if (value_5 != 0b11 || value_5 != 0b1__________________________________________________________________________________________________1 || value_5 != 3) return null
if (value_6 != 0b0_______0 || value_6 != 0b00 || value_6 != 0b0 || value_6 != 0) return null
if (value_7 != 0b0_0 || value_7 != 0b00 || value_7 != 0b0 || value_7 != 0) return null
if (value_8 != 0b10 || value_8 != 0B1_______________________________________________________________________________________________________________________________________________________0 || value_8 != 2) return null
if (value_9 != 0b1000000000000001 || value_9 != 0B1_00000000000000_1 || value_9 != 32769) return null
return "OK"
}
@@ -0,0 +1,22 @@
{
"1": {
"pos": {
"2": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Sequences with binary digit symbols separated by underscores.",
"unexpectedBehaviour": false
}
],
"1": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Sequences with binary digit symbols.",
"unexpectedBehaviour": false
}
]
}
}
}
@@ -0,0 +1,41 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, integer-literals, decimal-integer-literals -> paragraph 1 -> sentence 1
* NUMBER: 1
* DESCRIPTION: Sequences with decimal digit symbols.
*/
val value_1 = 1234567890
val value_2 = 23456789
val value_3 = 345678
val value_4 = 4567
val value_5 = 56
val value_6 = 65
val value_7 = 7654
val value_8 = 876543
val value_9 = 98765432
fun box(): String? {
val value_10 = 0
val value_11 = 1
val value_12 = 100000
val value_13 = 1000001
if (value_1 != 1234567890) return null
if (value_2 != 23456789) return null
if (value_3 != 345678) return null
if (value_4 != 4567) return null
if (value_5 != 56) return null
if (value_6 != 65) return null
if (value_7 != 7654) return null
if (value_8 != 876543) return null
if (value_9 != 98765432) return null
if (value_10 != 0) return null
if (value_11 != 1) return null
if (value_12 != 100000) return null
if (value_13 != 1000001) return null
return "OK"
}
@@ -0,0 +1,31 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, integer-literals, decimal-integer-literals -> paragraph 1 -> sentence 2
* NUMBER: 1
* DESCRIPTION: Sequences with decimal digit symbols separated by underscores.
*/
val value_1 = 1234_5678_90
val value_2 = 1_2_3_4_5_6_7_8_9_0
val value_3 = 1_2
val value_4 = 1_00000000000000000_1
val value_5 = 1_____________2
fun box(): String? {
val value_6 = 9_____________0000
val value_7 = 9____________0_0000
val value_8 = 1_______________________________________________________________________________________________________________________________________________________0
if (value_1 != 1234_5678_90 || value_1 != 1234567890) return null
if (value_2 != 1_2_3_4_5_6_7_8_9_0 || value_2 != 1234567890) return null
if (value_3 != 1_2 || value_3 != 12) return null
if (value_4 != 1_00000000000000000_1 || value_4 != 1000000000000000001) return null
if (value_5 != 1_____________2 || value_5 != 12) return null
if (value_6 != 9_____________0000 || value_6 != 90000) return null
if (value_7 != 9____________0_0000 || value_7 != 900000) return null
if (value_8 != 1_______________________________________________________________________________________________________________________________________________________0 || value_8 != 10) return null
return "OK"
}
@@ -0,0 +1,22 @@
{
"1": {
"pos": {
"2": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Sequences with decimal digit symbols separated by underscores.",
"unexpectedBehaviour": false
}
],
"1": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Sequences with decimal digit symbols.",
"unexpectedBehaviour": false
}
]
}
}
}
@@ -0,0 +1,98 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, integer-literals, hexadecimal-integer-literals -> paragraph 1 -> sentence 1
* NUMBER: 1
* DESCRIPTION: Sequences with hexadecimal digit symbols.
*/
val value_1 = 0x1234567890
val value_2 = 0X23456789
val value_3 = 0x345678
val value_7 = 0X7654
val value_8 = 0x876543
val value_9 = 0x98765432
val value_10 = 0X0
val value_11 = 0x1
val value_12 = 0x100000
val value_13 = 0X1000001
val value_14 = 0X0000000
val value_16 = 0x00000010
val value_17 = 0xABCDEF
val value_18 = 0Xabcdef
val value_19 = 0xAbcD
val value_23 = 0XAAAAAAAA
val value_24 = 0xcDf
val value_25 = 0xAcccccccccA
val value_26 = 0x0123456789ABCDEF
val value_27 = 0x0123456789abcdef
val value_28 = 0XAA00AA
val value_29 = 0xBc12eF
val value_30 = 0xa0
val value_31 = 0XE1
val value_32 = 0xE1eE2eE3eE4e
val value_33 = 0XAAAAAA000000
val value_34 = 0xcDf091
fun box(): String? {
val value_4 = 0X4567
val value_5 = 0X56
val value_6 = 0x65
val value_15 = 0x0000001000000
val value_20 = 0Xa
val value_21 = 0xE
val value_22 = 0xEeEeEeEe
val value_35 = 0xAcccc0000cccccA
val value_36 = 0X0000000A
val value_37 = 0xe0000000
val value_38 = 0x0000000D0000000
val value_39 = 0xA0A
if (value_1 != 0x1234567890 || value_1 != 78187493520) return null
if (value_2 != 0X23456789 || value_2 != 591751049) return null
if (value_3 != 0x345678 || value_3 != 3430008) return null
if (value_4 != 0X4567 || value_4 != 17767) return null
if (value_5 != 0X56 || value_5 != 86) return null
if (value_6 != 0x65 || value_6 != 101) return null
if (value_7 != 0X7654 || value_7 != 30292) return null
if (value_8 != 0x876543 || value_8 != 8873283) return null
if (value_9 != 0x98765432 || value_9 != 2557891634) return null
if (value_10 != 0X0 || value_10 != 0) return null
if (value_11 != 0x1 || value_11 != 1) return null
if (value_12 != 0x100000 || value_12 != 1048576) return null
if (value_13 != 0X1000001 || value_13 != 16777217) return null
if (value_14 != 0X0000000 || value_14 != 0) return null
if (value_15 != 0x0000001000000 || value_15 != 16777216) return null
if (value_16 != 0x00000010 || value_16 != 16) return null
if (value_17 != 0xABCDEF || value_17 != 11259375) return null
if (value_18 != 0Xabcdef || value_18 != 11259375) return null
if (value_19 != 0xAbcD || value_19 != 43981) return null
if (value_20 != 0Xa || value_20 != 10) return null
if (value_21 != 0xE || value_21 != 14) return null
if (value_22 != 0xEeEeEeEe || value_22 != 4008636142) return null
if (value_23 != 0XAAAAAAAA || value_23 != 2863311530) return null
if (value_24 != 0xcDf || value_24 != 3295) return null
if (value_25 != 0xAcccccccccA || value_25 != 11874725579978) return null
if (value_26 != 0x0123456789ABCDEF || value_26 != 81985529216486895) return null
if (value_27 != 0x0123456789abcdef || value_27 != 81985529216486895) return null
if (value_28 != 0XAA00AA || value_28 != 11141290) return null
if (value_29 != 0xBc12eF || value_29 != 12325615) return null
if (value_30 != 0xa0 || value_30 != 160) return null
if (value_31 != 0XE1 || value_31 != 225) return null
if (value_32 != 0xE1eE2eE3eE4e || value_32 != 248413105155662) return null
if (value_33 != 0XAAAAAA000000 || value_33 != 187649973288960) return null
if (value_34 != 0xcDf091 || value_34 != 13496465) return null
if (value_35 != 0xAcccc0000cccccA || value_35 != 778221136013741258) return null
if (value_36 != 0X0000000A || value_36 != 10) return null
if (value_37 != 0xe0000000 || value_37 != 3758096384) return null
if (value_38 != 0x0000000D0000000 || value_38 != 3489660928) return null
if (value_39 != 0xA0A || value_39 != 2570) return null
return "OK"
}
@@ -0,0 +1,33 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, integer-literals, hexadecimal-integer-literals -> paragraph 1 -> sentence 2
* NUMBER: 1
* DESCRIPTION: Sequences with hexadecimal digit symbols separated by underscores.
*/
val value_1 = 0x1_23a567b90
val value_2 = 0XF_______34a6789f
val value_3 = 0x3_c_c_c_7_8
val value_4 = 0X4_______b_______6_______d
val value_5 = 0X5__________________________________________________________________________________________________f
val value_6 = 0x0_______0
fun box(): String? {
val value_7 = 0X0_0
val value_8 = 0xa_______________________________________________________________________________________________________________________________________________________0
val value_9 = 0x1_00000000000000_1
if (value_1 != 0x123a567b90 || value_1 != 0x1_23a567b90 || value_1 != 78288157584) return null
if (value_2 != 0XF34a6789f || value_2 != 0xF_______34a6789f || value_2 != 65307834527) return null
if (value_3 != 0x3ccc78 || value_3 != 0x3_c_c_c_7_8 || value_3 != 3984504) return null
if (value_4 != 0X4b6d || value_4 != 0x4_______b_______6_______d || value_4 != 19309) return null
if (value_5 != 0X5f || value_5 != 0X5__________________________________________________________________________________________________f || value_5 != 95) return null
if (value_6 != 0x0_______0 || value_6 != 0x00 || value_6 != 0x0 || value_6 != 0) return null
if (value_7 != 0x0_0 || value_7 != 0X00 || value_7 != 0x0 || value_7 != 0) return null
if (value_8 != 0xa0 || value_8 != 0xa_______________________________________________________________________________________________________________________________________________________0 || value_8 != 160) return null
if (value_9 != 0x1000000000000001 || value_9 != 0X1_00000000000000_1 || value_9 != 1152921504606846977) return null
return "OK"
}
@@ -0,0 +1,22 @@
{
"1": {
"pos": {
"2": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Sequences with hexadecimal digit symbols separated by underscores.",
"unexpectedBehaviour": false
}
],
"1": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Sequences with hexadecimal digit symbols.",
"unexpectedBehaviour": false
}
]
}
}
}
@@ -0,0 +1,92 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 1 -> sentence 1
* NUMBER: 1
* DESCRIPTION: Simple real literals with a different whole-number part and fraction part.
*/
val value_1 = 0.0
val value_2 = 0.00
val value_3 = 0.000
val value_4 = 0.0000
val value_5 = 00.0
val value_6 = 000.00
val value_7 = 0000.000
val value_8 = 1.0
val value_9 = 22.00
val value_10 = 333.000
val value_11 = 4444.0000
val value_12 = 55555.0
val value_13 = 666666.00
val value_14 = 7777777.000
val value_15 = 88888888.0000
val value_16 = 999999999.0
val value_17 = 0000000000.1234567890
val value_18 = 123456789.23456789
val value_19 = 2345678.345678
val value_20 = 34567.4567
val value_21 = 456.56
fun box(): String? {
val value_22 = 5.65
val value_23 = 654.7654
val value_24 = 76543.876543
val value_25 = 8765432.98765432
val value_26 = 987654321.0987654321
val value_27 = 0.1111
val value_28 = 1.22222
val value_29 = 9.33333
val value_30 = 9.444444
val value_31 = 8.5555555
val value_32 = 2.66666666
val value_33 = 3.777777777
val value_34 = 7.8888888888
val value_35 = 6.99999999999
if (value_1.compareTo(0.0) != 0) return null
if (value_2.compareTo(0.00) != 0 || value_2.compareTo(0.0) != 0) return null
if (value_3.compareTo(0.000) != 0 || value_3.compareTo(0.000) != 0) return null
if (value_4.compareTo(0.0000) != 0 || value_4.compareTo(0.0) != 0) return null
if (value_5.compareTo(00.0) != 0 || value_5.compareTo(0.0) != 0) return null
if (value_6.compareTo(000.000) != 0 || value_6.compareTo(0.0) != 0) return null
if (value_7.compareTo(0000.000) != 0 || value_7.compareTo(0.0) != 0) return null
if (value_8.compareTo(1.0) != 0) return null
if (value_9.compareTo(22.00) != 0 || value_9.compareTo(22.0) != 0) return null
if (value_10.compareTo(333.000) != 0 || value_10.compareTo(333.0) != 0) return null
if (value_11.compareTo(4444.0000) != 0 || value_11.compareTo(4444.0) != 0) return null
if (value_12.compareTo(55555.0) != 0) return null
if (value_13.compareTo(666666.00) != 0 || value_13.compareTo(666666.0) != 0) return null
if (value_14.compareTo(7777777.000) != 0 || value_14.compareTo(7777777.0) != 0) return null
if (value_15.compareTo(88888888.0000) != 0 || value_15.compareTo(88888888.0) != 0) return null
if (value_16.compareTo(999999999.0) != 0) return null
if (value_17.compareTo(0000000000.1234567890) != 0 || value_17.compareTo(0.1234567890) != 0) return null
if (value_18.compareTo(123456789.23456789) != 0) return null
if (value_19.compareTo(2345678.345678) != 0) return null
if (value_20.compareTo(34567.4567) != 0) return null
if (value_21.compareTo(456.56) != 0) return null
if (value_22.compareTo(5.65) != 0) return null
if (value_23.compareTo(654.7654) != 0) return null
if (value_24.compareTo(76543.876543) != 0) return null
if (value_25.compareTo(8765432.98765432) != 0) return null
if (value_26.compareTo(987654321.0987654321) != 0) return null
if (value_27.compareTo(0.1111) != 0) return null
if (value_28.compareTo(1.22222) != 0) return null
if (value_29.compareTo(9.33333) != 0) return null
if (value_30.compareTo(9.444444) != 0) return null
if (value_31.compareTo(8.5555555) != 0) return null
if (value_32.compareTo(2.66666666) != 0) return null
if (value_33.compareTo(3.777777777) != 0) return null
if (value_34.compareTo(7.8888888888) != 0) return null
if (value_35.compareTo(6.99999999999) != 0) return null
return "OK"
}
@@ -0,0 +1,92 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 1 -> sentence 3
* NUMBER: 1
* DESCRIPTION: Simple real literals suffixed by f/F (the float suffix) with a different whole-number part and fraction part.
*/
val value_1 = 0.0f
val value_2 = 0.00F
val value_3 = 0.000f
val value_4 = 0.0000F
val value_5 = 00.0f
val value_6 = 000.00f
val value_7 = 0000.000F
val value_8 = 1.0F
val value_9 = 22.00F
val value_10 = 333.000F
val value_11 = 4444.0000f
val value_12 = 55555.0f
val value_13 = 666666.00f
val value_14 = 7777777.000F
val value_15 = 88888888.0000f
val value_16 = 999999999.0F
val value_17 = 0000000000.1234567890f
val value_18 = 123456789.23456789f
val value_19 = 2345678.345678F
val value_20 = 34567.4567f
val value_21 = 456.56F
fun box(): String? {
val value_22 = 5.65F
val value_23 = 654.7654f
val value_24 = 76543.876543f
val value_25 = 8765432.98765432F
val value_26 = 987654321.0987654321f
val value_27 = 0.1111f
val value_28 = 1.22222f
val value_29 = 9.33333F
val value_30 = 9.444444F
val value_31 = 8.5555555F
val value_32 = 2.66666666F
val value_33 = 3.777777777F
val value_34 = 7.8888888888f
val value_35 = 6.99999999999f
if (value_1.compareTo(0.0F) != 0) return null
if (value_2.compareTo(0.00f) != 0 || value_2.compareTo(0.0f) != 0) return null
if (value_3.compareTo(0.000F) != 0 || value_3.compareTo(0.000f) != 0) return null
if (value_4.compareTo(0.0000f) != 0 || value_4.compareTo(0.0F) != 0) return null
if (value_5.compareTo(00.0f) != 0 || value_5.compareTo(0.0F) != 0) return null
if (value_6.compareTo(000.000f) != 0 || value_6.compareTo(0.0F) != 0) return null
if (value_7.compareTo(0000.000f) != 0 || value_7.compareTo(0.0f) != 0) return null
if (value_8.compareTo(1.0F) != 0) return null
if (value_9.compareTo(22.00F) != 0 || value_9.compareTo(22.0F) != 0) return null
if (value_10.compareTo(333.000F) != 0 || value_10.compareTo(333.0f) != 0) return null
if (value_11.compareTo(4444.0000f) != 0 || value_11.compareTo(4444.0f) != 0) return null
if (value_12.compareTo(55555.0F) != 0) return null
if (value_13.compareTo(666666.00F) != 0 || value_13.compareTo(666666.0f) != 0) return null
if (value_14.compareTo(7777777.000f) != 0 || value_14.compareTo(7777777.0F) != 0) return null
if (value_15.compareTo(88888888.0000f) != 0 || value_15.compareTo(88888888.0F) != 0) return null
if (value_16.compareTo(999999999.0f) != 0) return null
if (value_17.compareTo(0000000000.1234567890f) != 0 || value_17.compareTo(0.1234567890F) != 0) return null
if (value_18.compareTo(123456789.23456789F) != 0) return null
if (value_19.compareTo(2345678.345678F) != 0) return null
if (value_20.compareTo(34567.4567f) != 0) return null
if (value_21.compareTo(456.56f) != 0) return null
if (value_22.compareTo(5.65F) != 0) return null
if (value_23.compareTo(654.7654f) != 0) return null
if (value_24.compareTo(76543.876543F) != 0) return null
if (value_25.compareTo(8765432.98765432F) != 0) return null
if (value_26.compareTo(987654321.0987654321f) != 0) return null
if (value_27.compareTo(0.1111f) != 0) return null
if (value_28.compareTo(1.22222f) != 0) return null
if (value_29.compareTo(9.33333f) != 0) return null
if (value_30.compareTo(9.444444f) != 0) return null
if (value_31.compareTo(8.5555555F) != 0) return null
if (value_32.compareTo(2.66666666F) != 0) return null
if (value_33.compareTo(3.777777777f) != 0) return null
if (value_34.compareTo(7.8888888888F) != 0) return null
if (value_35.compareTo(6.99999999999f) != 0) return null
return "OK"
}
@@ -0,0 +1,72 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 2 -> sentence 1
* NUMBER: 1
* DESCRIPTION: Simple real literals with an exponent mark.
*/
val value_1 = 0.0e0
val value_2 = 0.0e-00
val value_3 = 0.0E000
val value_4 = 0.0E+0000
val value_5 = 00.0e+0
val value_6 = 000.00e00
val value_7 = 0000.000E-000
val value_8 = 1.0E+1
val value_9 = 22.00e22
val value_10 = 2345678.345678e00000000001
val value_11 = 456.56e-0
val value_12 = 5.65e000000000000
val value_13 = 654.7654E+010
val value_14 = 76543.876543E1
val value_15 = 8765432.98765432e-2
val value_16 = 987654321.0987654321E-3
val value_17 = 0.1111e4
val value_18 = 1.22222E-5
val value_19 = 9.33333e+6
val value_20 = 9.444444E7
val value_21 = 8.5555555e8
val value_22 = 3.777777777E-308
val value_23 = 6.99999999999e-309
val value_24 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
val value_25 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
val value_26 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
fun box(): String? {
if (value_1.compareTo(0.0e0) != 0 || value_1.compareTo(0.0) != 0) return null
if (value_2.compareTo(0.0e-00) != 0 || value_2.compareTo(0.0) != 0) return null
if (value_3.compareTo(0.0E000) != 0 || value_3.compareTo(0.0) != 0) return null
if (value_4.compareTo(0.0E+0000) != 0 || value_4.compareTo(0.0) != 0) return null
if (value_5.compareTo(00.0e+0) != 0 || value_5.compareTo(0.0) != 0) return null
if (value_6.compareTo(000.00e00) != 0 || value_6.compareTo(0.0) != 0) return null
if (value_7.compareTo(0000.000E-000) != 0 || value_7.compareTo(0.0) != 0) return null
if (value_8.compareTo(1.0E+1) != 0 || value_8.compareTo(10.0) != 0) return null
if (value_9.compareTo(22.00e22) != 0 || value_9.compareTo(2.2E23) != 0) return null
if (value_10.compareTo(2345678.345678e00000000001) != 0 || value_10.compareTo(2.345678345678E7) != 0) return null
if (value_11.compareTo(456.56e-0) != 0 || value_11.compareTo(456.56) != 0) return null
if (value_12.compareTo(5.65e000000000000) != 0 || value_12.compareTo(5.65) != 0) return null
if (value_13.compareTo(654.7654E+010) != 0 || value_13.compareTo(6.547654E12) != 0) return null
if (value_14.compareTo(76543.876543E1) != 0 || value_14.compareTo(765438.76543) != 0) return null
if (value_15.compareTo(8765432.98765432e-2) != 0 || value_15.compareTo(87654.3298765432) != 0) return null
if (value_16.compareTo(987654321.0987654321E-3) != 0 || value_16.compareTo(987654.3210987655) != 0) return null
if (value_17.compareTo(0.1111e4) != 0 || value_17.compareTo(1111.0) != 0) return null
if (value_18.compareTo(1.22222E-5) != 0) return null
if (value_19.compareTo(9.33333e+6) != 0 || value_19.compareTo(9333330.0) != 0) return null
if (value_20.compareTo(9.444444E7) != 0) return null
if (value_21.compareTo(8.5555555e8) != 0 || value_21.compareTo(8.5555555E8) != 0) return null
if (value_22.compareTo(3.777777777E-308) != 0) return null
if (value_23.compareTo(6.99999999999e-309) != 0 || value_23.compareTo(6.99999999999E-309) != 0) return null
if (value_24.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_24.compareTo(0.0) != 0) return null
if (value_25.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_25.compareTo(0.0) != 0) return null
if (value_26.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_26.compareTo(0.0) != 0) return null
return "OK"
}
@@ -0,0 +1,72 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 2 -> sentence 1
* NUMBER: 2
* DESCRIPTION: Real literals suffixed by f/F (float suffix) with an exponent mark.
*/
val value_1 = 0.0e0f
val value_2 = 0.0e-00F
val value_3 = 0.0E000F
val value_4 = 0.0E+0000f
val value_5 = 00.0e+0f
val value_6 = 000.00e00f
val value_7 = 0000.000E-000F
val value_8 = 1.0E+1F
val value_9 = 22.00e22F
val value_10 = 2345678.345678e00000000001F
val value_11 = 456.56e-0f
val value_12 = 5.65e000000000000F
val value_13 = 654.7654E+010f
val value_14 = 76543.876543E1f
val value_15 = 8765432.98765432e-2f
val value_16 = 987654321.0987654321E-3f
fun box(): String? {
val value_17 = 0.1111e4f
val value_18 = 1.22222E-5F
val value_19 = 9.33333e+6F
val value_20 = 9.444444E7F
val value_21 = 8.5555555e8f
val value_22 = 3.777777777E-308f
val value_23 = 6.99999999999e-309F
val value_24 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f
val value_25 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F
val value_26 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f
if (value_1.compareTo(0.0e0f) != 0 || value_1.compareTo(0.0f) != 0) return null
if (value_2.compareTo(0.0e-00F) != 0 || value_2.compareTo(0.0F) != 0) return null
if (value_3.compareTo(0.0E000f) != 0 || value_3.compareTo(0.0f) != 0) return null
if (value_4.compareTo(0.0E+0000F) != 0 || value_4.compareTo(0.0F) != 0) return null
if (value_5.compareTo(00.0e+0f) != 0 || value_5.compareTo(0.0f) != 0) return null
if (value_6.compareTo(000.00e00F) != 0 || value_6.compareTo(0.0f) != 0) return null
if (value_7.compareTo(0000.000E-000F) != 0 || value_7.compareTo(0.0f) != 0) return null
if (value_8.compareTo(1.0E+1F) != 0 || value_8.compareTo(10.0F) != 0) return null
if (value_9.compareTo(22.00e22F) != 0 || value_9.compareTo(2.2E23F) != 0) return null
if (value_10.compareTo(2345678.345678e00000000001f) != 0 || value_10.compareTo(2.345678345678E7F) != 0) return null
if (value_11.compareTo(456.56e-0F) != 0 || value_11.compareTo(456.56f) != 0) return null
if (value_12.compareTo(5.65e000000000000f) != 0 || value_12.compareTo(5.65F) != 0) return null
if (value_13.compareTo(654.7654E+010f) != 0 || value_13.compareTo(6.547654E12f) != 0) return null
if (value_14.compareTo(76543.876543E1F) != 0 || value_14.compareTo(765438.76543f) != 0) return null
if (value_15.compareTo(8765432.98765432e-2f) != 0 || value_15.compareTo(87654.3298765432f) != 0) return null
if (value_16.compareTo(987654321.0987654321E-3f) != 0 || value_16.compareTo(987654.3210987655f) != 0) return null
if (value_17.compareTo(0.1111e4f) != 0 || value_17.compareTo(1111.0f) != 0) return null
if (value_18.compareTo(1.22222E-5F) != 0) return null
if (value_19.compareTo(9.33333e+6F) != 0 || value_19.compareTo(9333330.0f) != 0) return null
if (value_20.compareTo(9.444444E7F) != 0) return null
if (value_21.compareTo(8.5555555e8f) != 0 || value_21.compareTo(8.5555555E8f) != 0) return null
if (value_22.compareTo(3.777777777E-308f) != 0) return null
if (value_23.compareTo(6.99999999999e-309F) != 0 || value_23.compareTo(6.99999999999E-309F) != 0) return null
if (value_24.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F) != 0 || value_24.compareTo(0.0f) != 0) return null
if (value_25.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f) != 0 || value_25.compareTo(0.0f) != 0) return null
if (value_26.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F) != 0 || value_26.compareTo(0.0F) != 0) return null
return "OK"
}
@@ -0,0 +1,65 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 1
* NUMBER: 1
* DESCRIPTION: Simple real literals with omitted a whole-number part.
*/
val value_1 = .0
val value_2 = .00
val value_3 = .000
val value_4 = .0000
val value_5 = .1234567890
val value_6 = .23456789
val value_7 = .345678
val value_8 = .4567
val value_9 = .56
fun box(): String? {
val value_10 = .65
val value_11 = .7654
val value_12 = .876543
val value_13 = .98765432
val value_14 = .0987654321
val value_15 = .1111
val value_16 = .22222
val value_17 = .33333
val value_18 = .444444
val value_19 = .5555555
val value_20 = .66666666
val value_21 = .777777777
val value_22 = .8888888888
val value_23 = .99999999999
if (value_1.compareTo(.0) != 0) return null
if (value_2.compareTo(.00) != 0 || value_2.compareTo(.0) != 0) return null
if (value_3.compareTo(.000) != 0 || value_3.compareTo(.0) != 0) return null
if (value_4.compareTo(.0000) != 0 || value_4.compareTo(.0) != 0) return null
if (value_5.compareTo(.1234567890) != 0 || value_5.compareTo(.1234567890) != 0) return null
if (value_6.compareTo(.23456789) != 0) return null
if (value_7.compareTo(.345678) != 0) return null
if (value_8.compareTo(.4567) != 0) return null
if (value_9.compareTo(.56) != 0) return null
if (value_10.compareTo(.65) != 0) return null
if (value_11.compareTo(.7654) != 0) return null
if (value_12.compareTo(.876543) != 0) return null
if (value_13.compareTo(.98765432) != 0) return null
if (value_14.compareTo(.0987654321) != 0) return null
if (value_15.compareTo(.1111) != 0) return null
if (value_16.compareTo(.22222) != 0) return null
if (value_17.compareTo(.33333) != 0) return null
if (value_18.compareTo(.444444) != 0) return null
if (value_19.compareTo(.5555555) != 0) return null
if (value_20.compareTo(.66666666) != 0) return null
if (value_21.compareTo(.777777777) != 0) return null
if (value_22.compareTo(.8888888888) != 0) return null
if (value_23.compareTo(.99999999999) != 0) return null
return "OK"
}
@@ -0,0 +1,65 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 1
* NUMBER: 2
* DESCRIPTION: Real literals suffixed by f/F (float suffix) with omitted a whole-number part.
*/
val value_1 = .0F
val value_2 = .00F
val value_3 = .000F
val value_4 = .0000f
val value_5 = .1234567890f
val value_6 = .23456789f
val value_7 = .345678F
val value_8 = .4567f
val value_9 = .56F
fun box(): String? {
val value_10 = .65F
val value_11 = .7654f
val value_12 = .876543f
val value_13 = .98765432F
val value_14 = .0987654321f
val value_15 = .1111f
val value_16 = .22222f
val value_17 = .33333F
val value_18 = .444444F
val value_19 = .5555555F
val value_20 = .66666666F
val value_21 = .777777777F
val value_22 = .8888888888f
val value_23 = .99999999999f
if (value_1.compareTo(.0F) != 0) return null
if (value_2.compareTo(.00F) != 0 || value_2.compareTo(.0F) != 0) return null
if (value_3.compareTo(.000F) != 0 || value_3.compareTo(.0f) != 0) return null
if (value_4.compareTo(.0000f) != 0 || value_4.compareTo(.0f) != 0) return null
if (value_5.compareTo(.1234567890f) != 0 || value_5.compareTo(.1234567890F) != 0) return null
if (value_6.compareTo(.23456789F) != 0) return null
if (value_7.compareTo(.345678F) != 0) return null
if (value_8.compareTo(.4567f) != 0) return null
if (value_9.compareTo(.56f) != 0) return null
if (value_10.compareTo(.65F) != 0) return null
if (value_11.compareTo(.7654f) != 0) return null
if (value_12.compareTo(.876543F) != 0) return null
if (value_13.compareTo(.98765432F) != 0) return null
if (value_14.compareTo(.0987654321f) != 0) return null
if (value_15.compareTo(.1111f) != 0) return null
if (value_16.compareTo(.22222f) != 0) return null
if (value_17.compareTo(.33333f) != 0) return null
if (value_18.compareTo(.444444f) != 0) return null
if (value_19.compareTo(.5555555F) != 0) return null
if (value_20.compareTo(.66666666F) != 0) return null
if (value_21.compareTo(.777777777f) != 0) return null
if (value_22.compareTo(.8888888888F) != 0) return null
if (value_23.compareTo(.99999999999f) != 0) return null
return "OK"
}
@@ -0,0 +1,71 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 1
* NUMBER: 3
* DESCRIPTION: Real literals with omitted a whole-number part and an exponent mark.
*/
val value_1 = .0e0
val value_2 = .0e-00
val value_3 = .0E000
val value_4 = .0E+0000
val value_5 = .0e+0
val value_6 = .00e00
val value_7 = .000E-000
val value_8 = .0E+1
val value_9 = .00e22
val value_10 = .345678e00000000001
val value_11 = .56e-0
val value_12 = .65e000000000000
val value_13 = .7654E+010
val value_14 = .876543E1
val value_15 = .98765432e-2
val value_16 = .0987654321E-3
val value_17 = .1111e4
val value_18 = .22222E-5
val value_19 = .33333e+6
val value_20 = .444444E7
val value_21 = .5555555e8
val value_22 = .777777777E-308
val value_23 = .99999999999e-309
val value_24 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
val value_25 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
val value_26 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
fun box(): String? {
if (value_1.compareTo(.0e0) != 0 || value_1.compareTo(0.0) != 0) return null
if (value_2.compareTo(.0e-00) != 0 || value_2.compareTo(0.0) != 0) return null
if (value_3.compareTo(.0E000) != 0 || value_3.compareTo(0.0) != 0) return null
if (value_4.compareTo(.0E+0000) != 0 || value_4.compareTo(0.0) != 0) return null
if (value_5.compareTo(.0e+0) != 0 || value_5.compareTo(0.0) != 0) return null
if (value_6.compareTo(.00e00) != 0 || value_6.compareTo(0.0) != 0) return null
if (value_7.compareTo(.000E-000) != 0 || value_7.compareTo(0.0) != 0) return null
if (value_8.compareTo(.0E+1) != 0 || value_8.compareTo(0.0) != 0) return null
if (value_9.compareTo(.00e22) != 0 || value_9.compareTo(0.0) != 0) return null
if (value_10.compareTo(.345678e00000000001) != 0 || value_10.compareTo(3.45678) != 0) return null
if (value_11.compareTo(.56e-0) != 0 || value_11.compareTo(0.56) != 0) return null
if (value_12.compareTo(.65e000000000000) != 0 || value_12.compareTo(0.65) != 0) return null
if (value_13.compareTo(.7654E+010) != 0 || value_13.compareTo(7.654E9) != 0) return null
if (value_14.compareTo(.876543E1) != 0 || value_14.compareTo(8.76543) != 0) return null
if (value_15.compareTo(.98765432e-2) != 0 || value_15.compareTo(0.0098765432) != 0) return null
if (value_16.compareTo(.0987654321E-3) != 0 || value_16.compareTo(9.87654321E-5) != 0) return null
if (value_17.compareTo(.1111e4) != 0 || value_17.compareTo(1111.0) != 0) return null
if (value_18.compareTo(.22222E-5) != 0 || value_18.compareTo(2.2222E-6) != 0) return null
if (value_19.compareTo(.33333e+6) != 0 || value_19.compareTo(333330.0) != 0) return null
if (value_20.compareTo(.444444E7) != 0 || value_20.compareTo(4444440.0) != 0) return null
if (value_21.compareTo(.5555555e8) != 0 || value_21.compareTo(5.555555E7) != 0) return null
if (value_22.compareTo(.777777777E-308) != 0 || value_22.compareTo(7.77777777E-309) != 0) return null
if (value_23.compareTo(.99999999999e-309) != 0 || value_23.compareTo(9.9999999999E-310) != 0) return null
if (value_24.compareTo(.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_24.compareTo(0.0) != 0) return null
if (value_25.compareTo(.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_25.compareTo(0.0) != 0) return null
if (value_26.compareTo(.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_26.compareTo(0.0) != 0) return null
return "OK"
}
@@ -0,0 +1,72 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 1
* NUMBER: 4
* DESCRIPTION: Real literals suffixed by f/F (float suffix) with omitted a whole-number part and an exponent mark.
*/
val value_1 = .0e0f
val value_2 = .0e-00F
val value_3 = .0E000F
val value_4 = .0E+0000f
val value_5 = .0e+0f
val value_6 = .00e00f
val value_7 = .000E-000F
val value_8 = .0E+1F
val value_9 = .00e22F
val value_10 = .345678e00000000001F
val value_11 = .56e-0f
val value_12 = .65e000000000000F
val value_13 = .7654E+010f
val value_14 = .876543E1f
val value_15 = .98765432e-2f
val value_16 = .0987654321E-3f
fun box(): String? {
val value_17 = .1111e4f
val value_18 = .22222E-5F
val value_19 = .33333e+6F
val value_20 = .444444E7F
val value_21 = .5555555e8f
val value_22 = .777777777E-308f
val value_23 = .99999999999e-309F
val value_24 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f
val value_25 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F
val value_26 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f
if (value_1.compareTo(.0e0f) != 0 || value_1.compareTo(0.0F) != 0) return null
if (value_2.compareTo(.0e-00F) != 0 || value_2.compareTo(0.0f) != 0) return null
if (value_3.compareTo(.0E000F) != 0 || value_3.compareTo(0.0f) != 0) return null
if (value_4.compareTo(.0E+0000F) != 0 || value_4.compareTo(0.0F) != 0) return null
if (value_5.compareTo(.0e+0F) != 0 || value_5.compareTo(0.0F) != 0) return null
if (value_6.compareTo(.00e00f) != 0 || value_6.compareTo(0.0F) != 0) return null
if (value_7.compareTo(.000E-000F) != 0 || value_7.compareTo(0.0f) != 0) return null
if (value_8.compareTo(.0E+1f) != 0 || value_8.compareTo(0.0F) != 0) return null
if (value_9.compareTo(.00e22F) != 0 || value_9.compareTo(0.0F) != 0) return null
if (value_10.compareTo(.345678e00000000001F) != 0 || value_10.compareTo(3.45678f) != 0) return null
if (value_11.compareTo(.56e-0f) != 0 || value_11.compareTo(0.56F) != 0) return null
if (value_12.compareTo(.65e000000000000f) != 0 || value_12.compareTo(0.65f) != 0) return null
if (value_13.compareTo(.7654E+010F) != 0 || value_13.compareTo(7.654E9f) != 0) return null
if (value_14.compareTo(.876543E1F) != 0 || value_14.compareTo(8.76543F) != 0) return null
if (value_15.compareTo(.98765432e-2f) != 0 || value_15.compareTo(0.0098765432F) != 0) return null
if (value_16.compareTo(.0987654321E-3f) != 0 || value_16.compareTo(9.87654321E-5F) != 0) return null
if (value_17.compareTo(.1111e4f) != 0 || value_17.compareTo(1111.0F) != 0) return null
if (value_18.compareTo(.22222E-5F) != 0 || value_18.compareTo(2.2222E-6F) != 0) return null
if (value_19.compareTo(.33333e+6f) != 0 || value_19.compareTo(333330.0F) != 0) return null
if (value_20.compareTo(.444444E7F) != 0 || value_20.compareTo(4444440.0F) != 0) return null
if (value_21.compareTo(.5555555e8f) != 0 || value_21.compareTo(5.555555E7F) != 0) return null
if (value_22.compareTo(.777777777E-308F) != 0 || value_22.compareTo(7.77777777E-309F) != 0) return null
if (value_23.compareTo(.99999999999e-309f) != 0 || value_23.compareTo(9.9999999999E-310f) != 0) return null
if (value_24.compareTo(.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F) != 0 || value_24.compareTo(0.0F) != 0) return null
if (value_25.compareTo(.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f) != 0 || value_25.compareTo(0.0F) != 0) return null
if (value_26.compareTo(.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f) != 0 || value_26.compareTo(0.0F) != 0) return null
return "OK"
}
@@ -0,0 +1,70 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 2
* NUMBER: 1
* DESCRIPTION: Simple real literals with omitted a fraction part, suffixed by f/F (float suffix).
*/
val value_1 = 0F
val value_2 = 00F
val value_3 = 000f
val value_4 = 0000F
val value_5 = 00000000000000000000000000000000000000f
val value_6 = 1f
val value_7 = 22f
val value_8 = 333F
val value_9 = 4444f
val value_10 = 55555F
val value_11 = 666666f
val value_12 = 7777777f
val value_13 = 88888888F
val value_14 = 999999999F
val value_15 = 123456789f
val value_16 = 2345678F
val value_17 = 34567F
val value_18 = 456F
val value_19 = 5f
val value_20 = 654F
val value_21 = 76543F
val value_22 = 8765432f
val value_23 = 987654321F
val value_24 = 888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111F
val value_25 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f
fun box(): String? {
if (value_1.compareTo(0.0F) != 0) return null
if (value_2.compareTo(0.00F) != 0 || value_2.compareTo(0.0) != 0) return null
if (value_3.compareTo(0.000f) != 0 || value_3.compareTo(0.0) != 0) return null
if (value_4.compareTo(0.0000F) != 0 || value_4.compareTo(0.0) != 0) return null
if (value_5.compareTo(00000000000000000000000000000000000000f) != 0 || value_5.compareTo(0.0) != 0) return null
if (value_6.compareTo(1f) != 0 || value_6.compareTo(1.0) != 0) return null
if (value_7.compareTo(22f) != 0 || value_7.compareTo(22.0) != 0) return null
if (value_8.compareTo(333F) != 0 || value_8.compareTo(333.0) != 0) return null
if (value_9.compareTo(4444f) != 0 || value_9.compareTo(4444.0) != 0) return null
if (value_10.compareTo(55555F) != 0 || value_10.compareTo(55555.0) != 0) return null
if (value_11.compareTo(666666f) != 0 || value_11.compareTo(666666.0) != 0) return null
if (value_12.compareTo(7777777f) != 0 || value_12.compareTo(7777777.0) != 0) return null
if (value_13.compareTo(88888888F) != 0 || value_13.compareTo(88888888.0) != 0) return null
if (value_14.compareTo(999999999F) != 0 || value_14.compareTo(1.0E9F) != 0) return null
if (value_15.compareTo(123456789f) != 0 || value_15.compareTo(1.23456792E8f) != 0) return null
if (value_16.compareTo(2345678F) != 0 || value_16.compareTo(2345678.0) != 0) return null
if (value_17.compareTo(34567F) != 0 || value_17.compareTo(34567.0) != 0) return null
if (value_18.compareTo(456F) != 0 || value_18.compareTo(456.0) != 0) return null
if (value_19.compareTo(5f) != 0 || value_19.compareTo(5.0) != 0) return null
if (value_20.compareTo(654F) != 0 || value_20.compareTo(654.0) != 0) return null
if (value_21.compareTo(76543F) != 0 || value_21.compareTo(76543.0) != 0) return null
if (value_22.compareTo(8765432f) != 0 || value_22.compareTo(8765432.0) != 0) return null
if (value_23.compareTo(987654321F) != 0 || value_23.compareTo(9.8765434E8F) != 0) return null
if (value_24.compareTo(888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111F) != 0 || value_24.compareTo(Double.POSITIVE_INFINITY) != 0) return null
if (value_25.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f) != 0 || value_25.compareTo(0.0) != 0) return null
return "OK"
}
@@ -0,0 +1,64 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 2
* NUMBER: 2
* DESCRIPTION: Real literals with omitted a fraction part and an exponent mark.
*/
val value_1 = 0e0
val value_2 = 00e00
val value_3 = 000E-10
val value_4 = 0000e+00000000000
val value_5 = 00000000000000000000000000000000000000E1
val value_6 = 1e1
val value_7 = 22E-1
val value_8 = 333e-00000000000
val value_9 = 4444E-99999999999999999
val value_10 = 55555e10
val value_11 = 666666E00010
val value_12 = 7777777e09090909090
val value_13 = 88888888e1234567890
val value_14 = 999999999E1234567890
val value_15 = 123456789e987654321
val value_16 = 2345678E0
val value_17 = 34567E+010
val value_18 = 456e-09876543210
val value_19 = 5e505
val value_20 = 654e5
val value_21 = 76543E-91823
val value_22 = 8765432e+90
val value_23 = 987654321e-1
fun box(): String? {
if (value_1.compareTo(0e0) != 0 || value_2.compareTo(0.0) != 0) return null
if (value_2.compareTo(00e00) != 0 || value_2.compareTo(0.0) != 0) return null
if (value_3.compareTo(000E-10) != 0 || value_3.compareTo(0.0) != 0) return null
if (value_4.compareTo(0000e+00000000000) != 0 || value_4.compareTo(0.0) != 0) return null
if (value_5.compareTo(00000000000000000000000000000000000000E1) != 0 || value_5.compareTo(0.0) != 0) return null
if (value_6.compareTo(1e1) != 0 || value_6.compareTo(10.0) != 0) return null
if (value_7.compareTo(22E-1) != 0 || value_7.compareTo(2.2) != 0) return null
if (value_8.compareTo(333e-00000000000) != 0 || value_8.compareTo(333.0) != 0) return null
if (value_9.compareTo(4444E-99999999999999999) != 0 || value_9.compareTo(0.0) != 0) return null
if (value_10.compareTo(55555e10) != 0 || value_10.compareTo(5.5555E14) != 0) return null
if (value_11.compareTo(666666E00010) != 0 || value_11.compareTo(6.66666e15) != 0) return null
if (value_12.compareTo(7777777e09090909090) != 0 || value_12.compareTo(Double.POSITIVE_INFINITY) != 0) return null
if (value_13.compareTo(88888888e1234567890) != 0 || value_13.compareTo(Double.POSITIVE_INFINITY) != 0) return null
if (value_14.compareTo(999999999E1234567890) != 0 || value_14.compareTo(Double.POSITIVE_INFINITY) != 0) return null
if (value_15.compareTo(123456789e987654321) != 0 || value_15.compareTo(Double.POSITIVE_INFINITY) != 0) return null
if (value_16.compareTo(2345678E0) != 0 || value_16.compareTo(2345678.0) != 0) return null
if (value_17.compareTo(34567E+010) != 0 || value_17.compareTo(3.4567E14) != 0) return null
if (value_18.compareTo(456e-09876543210) != 0 || value_18.compareTo(0.0) != 0) return null
if (value_19.compareTo(5e505) != 0 || value_19.compareTo(Double.POSITIVE_INFINITY) != 0) return null
if (value_20.compareTo(654e5) != 0 || value_20.compareTo(6.54E7) != 0) return null
if (value_21.compareTo(76543E-91823) != 0 || value_21.compareTo(0.0) != 0) return null
if (value_22.compareTo(8765432e+90) != 0 || value_22.compareTo(8.765432E96) != 0) return null
if (value_23.compareTo(987654321e-1) != 0 || value_23.compareTo(9.87654321E7) != 0) return null
return "OK"
}
@@ -0,0 +1,64 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 2
* NUMBER: 3
* DESCRIPTION: Real literals with omitted a fraction part and an exponent mark, suffixed by f/F (float suffix).
*/
val value_1 = 0e0f
val value_2 = 00e00F
val value_3 = 000E-10f
val value_4 = 0000e+00000000000f
val value_5 = 00000000000000000000000000000000000000E1F
val value_6 = 1e1F
val value_7 = 22E-1f
val value_8 = 333e-00000000000F
val value_9 = 4444E-99999999999999999f
val value_10 = 55555e10f
val value_11 = 666666E00010F
val value_12 = 7777777e09090909090F
val value_13 = 88888888e1234567890F
val value_14 = 999999999E1234567890f
val value_15 = 123456789e987654321F
val value_16 = 2345678E0f
val value_17 = 34567E+010f
val value_18 = 456e-09876543210F
val value_19 = 5e505f
val value_20 = 654e5F
val value_21 = 76543E-91823f
val value_22 = 8765432e+90F
val value_23 = 987654321e-1f
fun box(): String? {
if (value_1.compareTo(0e0f) != 0 || value_2.compareTo(0.0f) != 0) return null
if (value_2.compareTo(00e00F) != 0 || value_2.compareTo(0.0F) != 0) return null
if (value_3.compareTo(000E-10F) != 0 || value_3.compareTo(0.0f) != 0) return null
if (value_4.compareTo(0000e+00000000000F) != 0 || value_4.compareTo(0.0f) != 0) return null
if (value_5.compareTo(00000000000000000000000000000000000000E1f) != 0 || value_5.compareTo(0.0f) != 0) return null
if (value_6.compareTo(1e1f) != 0 || value_6.compareTo(10.0F) != 0) return null
if (value_7.compareTo(22E-1F) != 0 || value_7.compareTo(2.2f) != 0) return null
if (value_8.compareTo(333e-00000000000F) != 0 || value_8.compareTo(333.0F) != 0) return null
if (value_9.compareTo(4444E-99999999999999999F) != 0 || value_9.compareTo(0.0f) != 0) return null
if (value_10.compareTo(55555e10F) != 0 || value_10.compareTo(5.5555E14f) != 0) return null
if (value_11.compareTo(666666E00010F) != 0 || value_11.compareTo(6.66666e15f) != 0) return null
if (value_12.compareTo(7777777e09090909090f) != 0 || value_12.compareTo(Float.POSITIVE_INFINITY) != 0) return null
if (value_13.compareTo(88888888e1234567890F) != 0 || value_13.compareTo(Float.POSITIVE_INFINITY) != 0) return null
if (value_14.compareTo(999999999E1234567890f) != 0 || value_14.compareTo(Float.POSITIVE_INFINITY) != 0) return null
if (value_15.compareTo(123456789e987654321f) != 0 || value_15.compareTo(Float.POSITIVE_INFINITY) != 0) return null
if (value_16.compareTo(2345678E0F) != 0 || value_16.compareTo(2345678.0F) != 0) return null
if (value_17.compareTo(34567E+010F) != 0 || value_17.compareTo(3.4567E14f) != 0) return null
if (value_18.compareTo(456e-09876543210F) != 0 || value_18.compareTo(0.0f) != 0) return null
if (value_19.compareTo(5e505f) != 0 || value_19.compareTo(Float.POSITIVE_INFINITY) != 0) return null
if (value_20.compareTo(654e5f) != 0 || value_20.compareTo(6.54E7F) != 0) return null
if (value_21.compareTo(76543E-91823f) != 0 || value_21.compareTo(0.0f) != 0) return null
if (value_22.compareTo(8765432e+90F) != 0 || value_22.compareTo(8.765432E96F) != 0) return null
if (value_23.compareTo(987654321e-1f) != 0 || value_23.compareTo(9.87654321E7F) != 0) return null
return "OK"
}
@@ -0,0 +1,74 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1
* NUMBER: 1
* DESCRIPTION: Real literals with underscores in a whole-number part and a fraction part.
*/
val value_1 = 0.0_0
val value_2 = 0.0__0___0
val value_3 = 0.0_0__0_0
val value_4 = 0__0.0
val value_5 = 0_0_0.0______0
val value_6 = 00_______________00.0_0_0
val value_7 = 2_2.0_0
val value_8 = 33__3.00__0
val value_9 = 4_44____4.00______00
val value_10 = 5_________555_________5.0
val value_11 = 666_666.0_____________________________________________________________________________________________________________________0
val value_12 = 7777777.0_0_0
val value_13 = 8888888_8.0000
val value_14 = 9_______9______9_____9____9___9__9_9.0
val value_15 = 0_0_0_0_0_0_0_0_0_0.1234567890
val value_16 = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9
val value_17 = 234_5_678.345______________678
val value_18 = 3_456_7.4567
val value_19 = 456.5_6
fun box(): String? {
val value_20 = 5.6_5
val value_21 = 6_54.7654
val value_22 = 7_6543.87654_3
val value_23 = 876543_____________2.9_____________8765432
val value_24 = 9_____________87654321.098765432_____________1
val value_25 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0
val value_26 = 0_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
val value_27 = 9999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333
if (value_1.compareTo(0.0_0) != 0 || value_1.compareTo(0.0) != 0) return null
if (value_2.compareTo(0.0__0___0) != 0 || value_2.compareTo(0.0) != 0) return null
if (value_3.compareTo(0.0_0__0_0) != 0 || value_3.compareTo(0.0) != 0) return null
if (value_4.compareTo(0__0.0) != 0 || value_4.compareTo(0.0) != 0) return null
if (value_5.compareTo(0_0_0.0______0) != 0 || value_5.compareTo(0.0) != 0) return null
if (value_6.compareTo(00_______________00.0_0_0) != 0 || value_6.compareTo(0.0) != 0) return null
if (value_7.compareTo(2_2.0_0) != 0 || value_7.compareTo(22.0) != 0) return null
if (value_8.compareTo(33__3.00__0) != 0 || value_8.compareTo(333.0) != 0) return null
if (value_9.compareTo(4_44____4.00______00) != 0 || value_9.compareTo(4444.0) != 0) return null
if (value_10.compareTo(5_________555_________5.0) != 0 || value_10.compareTo(55555.0) != 0) return null
if (value_11.compareTo(666_666.0_____________________________________________________________________________________________________________________0) != 0 || value_11.compareTo(666666.0) != 0) return null
if (value_12.compareTo(7777777.0_0_0) != 0 || value_12.compareTo(7777777.0) != 0) return null
if (value_13.compareTo(8888888_8.0000) != 0 || value_13.compareTo(8.8888888E7) != 0) return null
if (value_14.compareTo(9_______9______9_____9____9___9__9_9.0) != 0 || value_14.compareTo(9.9999999E7) != 0) return null
if (value_15.compareTo(0_0_0_0_0_0_0_0_0_0.1234567890) != 0 || value_15.compareTo(0.123456789) != 0) return null
if (value_16.compareTo(1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9) != 0 || value_16.compareTo(1.234567892345679E8) != 0) return null
if (value_17.compareTo(234_5_678.345______________678) != 0 || value_17.compareTo(2345678.345678) != 0) return null
if (value_18.compareTo(3_456_7.4567) != 0 || value_18.compareTo(34567.4567) != 0) return null
if (value_19.compareTo(456.5_6) != 0 || value_19.compareTo(456.56) != 0) return null
if (value_20.compareTo(5.6_5) != 0 || value_20.compareTo(5.65) != 0) return null
if (value_21.compareTo(6_54.7654) != 0 || value_21.compareTo(654.7654) != 0) return null
if (value_22.compareTo(7_6543.87654_3) != 0 || value_22.compareTo(76543.876543) != 0) return null
if (value_23.compareTo(876543_____________2.9_____________8765432) != 0 || value_23.compareTo(8765432.98765432) != 0) return null
if (value_24.compareTo(9_____________87654321.098765432_____________1) != 0 || value_24.compareTo(9.876543210987654E8) != 0) return null
if (value_25.compareTo(000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0) != 0 || value_25.compareTo(0.0) != 0) return null
if (value_26.compareTo(0_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001) != 0 || value_26.compareTo(0.0) != 0) return null
if (value_27.compareTo(9999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333) != 0 || value_27.compareTo(Double.POSITIVE_INFINITY) != 0) return null
return "OK"
}
@@ -0,0 +1,74 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1
* NUMBER: 2
* DESCRIPTION: Real literals suffixed by f/F (float suffix) with underscores in a whole-number part and a fraction part.
*/
val value_1 = 0.0_0f
val value_2 = 0.0__0___0f
val value_3 = 0.0_0__0_0F
val value_4 = 0__0.0f
val value_5 = 0_0_0.0______0F
val value_6 = 00_______________00.0_0_0F
val value_7 = 2_2.0_0f
val value_8 = 33__3.00__0f
val value_9 = 4_44____4.00______00F
val value_10 = 5_________555_________5.0F
val value_11 = 666_666.0_____________________________________________________________________________________________________________________0f
val value_12 = 7777777.0_0_0F
val value_13 = 8888888_8.0000f
val value_14 = 9_______9______9_____9____9___9__9_9.0F
val value_15 = 0_0_0_0_0_0_0_0_0_0.1234567890F
val value_16 = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9f
val value_17 = 234_5_678.345______________678F
val value_18 = 3_456_7.4567f
val value_19 = 456.5_6F
fun box(): String? {
val value_20 = 5.6_5F
val value_21 = 6_54.7654f
val value_22 = 7_6543.87654_3F
val value_23 = 876543_____________2.9_____________8765432f
val value_24 = 9_____________87654321.098765432_____________1f
val value_25 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0f
val value_26 = 0_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001F
val value_27 = 9999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333f
if (value_1.compareTo(0.0_0f) != 0 || value_1.compareTo(0.0f) != 0) return null
if (value_2.compareTo(0.0__0___0F) != 0 || value_2.compareTo(0.0F) != 0) return null
if (value_3.compareTo(0.0_0__0_0f) != 0 || value_3.compareTo(0.0f) != 0) return null
if (value_4.compareTo(0__0.0F) != 0 || value_4.compareTo(0.0F) != 0) return null
if (value_5.compareTo(0_0_0.0______0F) != 0 || value_5.compareTo(0.0f) != 0) return null
if (value_6.compareTo(00_______________00.0_0_0f) != 0 || value_6.compareTo(0.0f) != 0) return null
if (value_7.compareTo(2_2.0_0f) != 0 || value_7.compareTo(22.0F) != 0) return null
if (value_8.compareTo(33__3.00__0f) != 0 || value_8.compareTo(333.0f) != 0) return null
if (value_9.compareTo(4_44____4.00______00F) != 0 || value_9.compareTo(4444.0f) != 0) return null
if (value_10.compareTo(5_________555_________5.0f) != 0 || value_10.compareTo(55555.0F) != 0) return null
if (value_11.compareTo(666_666.0_____________________________________________________________________________________________________________________0f) != 0 || value_11.compareTo(666666.0) != 0) return null
if (value_12.compareTo(7777777.0_0_0F) != 0 || value_12.compareTo(7777777.0F) != 0) return null
if (value_13.compareTo(8888888_8.0000F) != 0 || value_13.compareTo(8.8888888E7F) != 0) return null
if (value_14.compareTo(9_______9______9_____9____9___9__9_9.0f) != 0 || value_14.compareTo(9.9999999E7f) != 0) return null
if (value_15.compareTo(0_0_0_0_0_0_0_0_0_0.1234567890F) != 0 || value_15.compareTo(0.123456789F) != 0) return null
if (value_16.compareTo(1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9f) != 0 || value_16.compareTo(1.234567892345679E8F) != 0) return null
if (value_17.compareTo(234_5_678.345______________678f) != 0 || value_17.compareTo(2345678.345678f) != 0) return null
if (value_18.compareTo(3_456_7.4567f) != 0 || value_18.compareTo(34567.4567F) != 0) return null
if (value_19.compareTo(456.5_6F) != 0 || value_19.compareTo(456.56F) != 0) return null
if (value_20.compareTo(5.6_5F) != 0 || value_20.compareTo(5.65f) != 0) return null
if (value_21.compareTo(6_54.7654f) != 0 || value_21.compareTo(654.7654f) != 0) return null
if (value_22.compareTo(7_6543.87654_3F) != 0 || value_22.compareTo(76543.876543F) != 0) return null
if (value_23.compareTo(876543_____________2.9_____________8765432f) != 0 || value_23.compareTo(8765432.98765432f) != 0) return null
if (value_24.compareTo(9_____________87654321.098765432_____________1f) != 0 || value_24.compareTo(9.876543210987654E8F) != 0) return null
if (value_25.compareTo(000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0F) != 0 || value_25.compareTo(0.0f) != 0) return null
if (value_26.compareTo(0_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f) != 0 || value_26.compareTo(0.0) != 0) return null
if (value_27.compareTo(9999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333F) != 0 || value_27.compareTo(Double.POSITIVE_INFINITY) != 0) return null
return "OK"
}
@@ -0,0 +1,74 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1
* NUMBER: 3
* DESCRIPTION: Real literals suffixed by f/F (float suffix) with an exponent mark and underscores in a whole-number part, a fraction part and an exponent part.
*/
val value_1 = 0.0_0e1_0f
val value_2 = 0.0__0e-0___0
val value_3 = 0.0_0E-0__0_0F
val value_4 = 0__0.0e0f
val value_5 = 0_0_0.0_0E0_0
val value_6 = 00_______________00.0_0e+0_0
val value_7 = 2_2.0e1_0F
val value_8 = 33__3.0e10__0
val value_9 = 4_44____4.0E0______00F
val value_10 = 5_________555_________5.0e-9
val value_11 = 666_666.0__________________________________________________1E+2___________________________________________________________________0F
val value_12 = 7777777.0_0e3_0
val value_13 = 8888888_8.000e0f
val value_14 = 9_______9______9_____9____9___9__9_9.0E-1
val value_15 = 0_0_0_0_0_0_0_0_0_0.12345678e+90F
val value_16 = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9e-0
fun box(): String? {
val value_17 = 234_5_678.345______________6e7_______8f
val value_18 = 3_456_7.45_6E7f
val value_19 = 456.5e0_6
val value_20 = 5.6_0E+05F
val value_21 = 6_54.76_5e-4
val value_22 = 7_6543.8E7654_3
val value_23 = 876543_____________2.9E+0_____________8765432f
val value_24 = 9_____________87654321.0e-9_8765432_____________1F
val value_25 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000_0F
val value_26 = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0E-0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
val value_27 = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f
if (value_1.compareTo(0.0_0e1_0f) != 0 || value_1.compareTo(0.0f) != 0) return null
if (value_2.compareTo(0.0__0e-0___0) != 0 || value_2.compareTo(0.0) != 0) return null
if (value_3.compareTo(0.0_0E-0__0_0F) != 0 || value_3.compareTo(0.0f) != 0) return null
if (value_4.compareTo(0__0.0e0f) != 0 || value_4.compareTo(0.0) != 0) return null
if (value_5.compareTo(0_0_0.0_0E0_0) != 0 || value_5.compareTo(0.0f) != 0) return null
if (value_6.compareTo(00_______________00.0_0e+0_0) != 0 || value_6.compareTo(0.0f) != 0) return null
if (value_7.compareTo(2_2.0e1_0F) != 0 || value_7.compareTo(2.19999994E11f) != 0) return null
if (value_8.compareTo(33__3.0e10__0) != 0 || value_8.compareTo(3.33E102) != 0) return null
if (value_9.compareTo(4_44____4.0E0______00F) != 0 || value_9.compareTo(4444.0f) != 0) return null
if (value_10.compareTo(5_________555_________5.0e-9) != 0 || value_10.compareTo(5.5555E-5) != 0) return null
if (value_11.compareTo(666_666.0__________________________________________________1E+2___________________________________________________________________0F) != 0 || value_11.compareTo(6.66666E25F) != 0) return null
if (value_12.compareTo(7777777.0_0e3_0) != 0 || value_12.compareTo(7.777777E36) != 0) return null
if (value_13.compareTo(8888888_8.000e0f) != 0 || value_13.compareTo(8.8888888E7) != 0) return null
if (value_14.compareTo(9_______9______9_____9____9___9__9_9.0E-1) != 0 || value_14.compareTo(9999999.9) != 0) return null
if (value_15.compareTo(0_0_0_0_0_0_0_0_0_0.12345678e+90F) != 0 || value_15.compareTo(Float.POSITIVE_INFINITY) != 0) return null
if (value_16.compareTo(1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9e-0) != 0 || value_16.compareTo(1.234567892345679E8) != 0) return null
if (value_17.compareTo(234_5_678.345______________6e7_______8f) != 0 || value_17.compareTo(Float.POSITIVE_INFINITY) != 0) return null
if (value_18.compareTo(3_456_7.45_6E7f) != 0 || value_18.compareTo(3.45674547E11F) != 0) return null
if (value_19.compareTo(456.5e0_6) != 0 || value_19.compareTo(4.565E8f) != 0) return null
if (value_20.compareTo(5.6_0E+05F) != 0 || value_20.compareTo(560000.0F) != 0) return null
if (value_21.compareTo(6_54.76_5e-4) != 0 || value_21.compareTo(0.0654765) != 0) return null
if (value_22.compareTo(7_6543.8E7654_3) != 0 || value_22.compareTo(Double.POSITIVE_INFINITY) != 0) return null
if (value_23.compareTo(876543_____________2.9E+0_____________8765432f) != 0 || value_23.compareTo(Float.POSITIVE_INFINITY) != 0) return null
if (value_24.compareTo(9_____________87654321.0e-9_8765432_____________1F) != 0 || value_24.compareTo(0.0) != 0) return null
if (value_25.compareTo(000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000_0F) != 0 || value_25.compareTo(0.0) != 0) return null
if (value_26.compareTo(0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0E-0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_26.compareTo(0.0) != 0) return null
if (value_27.compareTo(9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f) != 0 || value_27.compareTo(Float.POSITIVE_INFINITY) != 0) return null
return "OK"
}
@@ -0,0 +1,79 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1
* NUMBER: 4
* DESCRIPTION: Real literals with an omitted whole-number part and underscores in a whole-number part, a fraction part and an exponent part.
*/
val value_1 = .0_0
val value_2 = .0_0f
val value_3 = .0_0e-0_0
val value_4 = .0_0e0_0F
val value_5 = .0__0F
val value_6 = .0_0E+0__0_0F
val value_7 = .0e0f
val value_8 = .0_0E0_0
val value_9 = .0e1_0F
val value_10 = .0e10__0
val value_11 = .00______00F
val value_12 = .0___9
val value_13 = .0__________________________________________________12___________________________________________________________________0F
val value_14 = .0_0e+3_0
val value_15 = .000e0f
val value_16 = .9_______9______9_____9____9___9__9_90E-1
val value_17 = .12345678_90
val value_18 = .1_2_3_4_5_6_7_8_9_0
val value_19 = .345______________6e-7_______8f
val value_20 = .45_67f
val value_21 = .5e+0_6
fun box(): String? {
val value_22 = .6_0______________05F
val value_23 = .76_5e4
val value_24 = .8E7654_3
val value_25 = .9E0_____________8765432f
val value_26 = .09_8765432_____________1F
val value_27 = .000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000_0F
val value_28 = .00___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
val value_29 = .33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f
if (value_1.compareTo(.0_0) != 0 || value_1.compareTo(0.0) != 0) return null
if (value_2.compareTo(.0_0f) != 0 || value_2.compareTo(0.0) != 0) return null
if (value_3.compareTo(.0_0e-0_0) != 0 || value_3.compareTo(0.0f) != 0) return null
if (value_4.compareTo(.0_0e0_0F) != 0 || value_4.compareTo(0.0) != 0) return null
if (value_5.compareTo(.0__0F) != 0 || value_5.compareTo(0.0f) != 0) return null
if (value_6.compareTo(.0_0E+0__0_0F) != 0 || value_6.compareTo(0.0) != 0) return null
if (value_7.compareTo(.0e0f) != 0 || value_7.compareTo(0.0f) != 0) return null
if (value_8.compareTo(.0_0E0_0) != 0 || value_8.compareTo(0.0) != 0) return null
if (value_9.compareTo(.0e1_0F) != 0 || value_9.compareTo(0.0F) != 0) return null
if (value_10.compareTo(.0e10__0) != 0 || value_10.compareTo(0.0) != 0) return null
if (value_11.compareTo(.00______00F) != 0 || value_11.compareTo(0.0F) != 0) return null
if (value_12.compareTo(.0___9) != 0 || value_12.compareTo(0.09) != 0) return null
if (value_13.compareTo(.0__________________________________________________12___________________________________________________________________0F) != 0 || value_13.compareTo(0.012f) != 0) return null
if (value_14.compareTo(.0_0e+3_0) != 0 || value_14.compareTo(0.0) != 0) return null
if (value_15.compareTo(.000e0f) != 0 || value_15.compareTo(0.0) != 0) return null
if (value_16.compareTo(.9_______9______9_____9____9___9__9_90E-1) != 0 || value_16.compareTo(0.099999999) != 0) return null
if (value_17.compareTo(.12345678_90) != 0 || value_17.compareTo(0.123456789) != 0) return null
if (value_18.compareTo(.1_2_3_4_5_6_7_8_9_0) != 0 || value_18.compareTo(0.123456789) != 0) return null
if (value_19.compareTo(.345______________6e-7_______8f) != 0 || value_19.compareTo(0.0) != 0) return null
if (value_20.compareTo(.45_67f) != 0 || value_20.compareTo(0.4567F) != 0) return null
if (value_21.compareTo(.5e+0_6) != 0 || value_21.compareTo(500000.0) != 0) return null
if (value_22.compareTo(.6_0______________05F) != 0 || value_22.compareTo(0.6005f) != 0) return null
if (value_23.compareTo(.76_5e4) != 0 || value_23.compareTo(7650.0) != 0) return null
if (value_24.compareTo(.8E7654_3) != 0 || value_24.compareTo(Float.POSITIVE_INFINITY) != 0) return null
if (value_25.compareTo(.9E0_____________8765432f) != 0 || value_25.compareTo(Float.POSITIVE_INFINITY) != 0) return null
if (value_26.compareTo(.09_8765432_____________1F) != 0 || value_26.compareTo(0.09876543F) != 0) return null
if (value_27.compareTo(.000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000_0F) != 0 || value_27.compareTo(0.0) != 0) return null
if (value_28.compareTo(.00___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_28.compareTo(0.0) != 0) return null
if (value_29.compareTo(.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f) != 0 || value_29.compareTo(3.3333334E32F) != 0) return null
return "OK"
}
@@ -0,0 +1,82 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1
* NUMBER: 5
* DESCRIPTION: Real literals with an omitted fraction part and underscores in a whole-number part, a fraction part and an exponent part.
*/
val value_1 = 0_0F
val value_2 = 0_0E-0_0F
val value_3 = 0_0E-0_0
val value_4 = 0_0____0f
val value_5 = 0_0____0e-0f
val value_6 = 0_0_0_0F
val value_7 = 0_0_0_0E-0_0_0_0F
val value_8 = 0000000000000000000_______________0000000000000000000f
val value_9 = 0000000000000000000_______________0000000000000000000e+0f
val value_10 = 0000000000000000000_______________0000000000000000000E-0
val value_11 = 2___2e-2___2f
val value_12 = 33_3E0_0F
val value_13 = 4_444E-4_444f
val value_14 = 55_5_55F
val value_15 = 666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666f
val value_16 = 666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666E-10
val value_17 = 7_7_7_7_7_7_7f
val value_18 = 8888888________8e-9000000_0
val value_19 = 9________9_______9______9_____9____9___9__9_9F
val value_20 = 1__2_3__4____5_____6__7_89f
val value_21 = 2__34567e8
val value_22 = 345_6E+9_7F
fun box(): String? {
val value_23 = 45_____________________________________________________________6E-12313413_4
val value_24 = 5_______________________________________________________________________________________________________________________________________________________________________________________5f
val value_25 = 6__________________________________________________54F
val value_26 = 76_5___4e3___________33333333
val value_27 = 876543_____________________________________________________________2f
val value_28 = 9_8__7654__3_21F
val value_29 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0__0F
val value_30 = 0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f
val value_31 = 33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333E-1_0_0
if (value_1.compareTo(0_0F) != 0 || value_1.compareTo(0.0) != 0) return null
if (value_2.compareTo(0_0E-0_0F) != 0 || value_2.compareTo(0.0) != 0) return null
if (value_3.compareTo(0_0E-0_0) != 0 || value_3.compareTo(0.0f) != 0) return null
if (value_4.compareTo(0_0____0f) != 0 || value_4.compareTo(0.0) != 0) return null
if (value_5.compareTo(0_0____0e-0f) != 0 || value_5.compareTo(0.0f) != 0) return null
if (value_6.compareTo(0_0_0_0F) != 0 || value_6.compareTo(0.0) != 0) return null
if (value_7.compareTo(0_0_0_0E-0_0_0_0F) != 0 || value_7.compareTo(0.0f) != 0) return null
if (value_8.compareTo(0000000000000000000_______________0000000000000000000f) != 0 || value_8.compareTo(0.0) != 0) return null
if (value_9.compareTo(0000000000000000000_______________0000000000000000000e+0f) != 0 || value_9.compareTo(0.0F) != 0) return null
if (value_10.compareTo(0000000000000000000_______________0000000000000000000E-0) != 0 || value_10.compareTo(0.0) != 0) return null
if (value_11.compareTo(2___2e-2___2f) != 0 || value_11.compareTo(2.2E-21f) != 0) return null
if (value_12.compareTo(33_3E0_0F) != 0 || value_12.compareTo(333.0F) != 0) return null
if (value_13.compareTo(4_444E-4_444f) != 0 || value_13.compareTo(0.0) != 0) return null
if (value_14.compareTo(55_5_55F) != 0 || value_14.compareTo(55555.0F) != 0) return null
if (value_15.compareTo(666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666f) != 0 || value_15.compareTo(666666.0f) != 0) return null
if (value_16.compareTo(666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666E-10) != 0 || value_16.compareTo(6.66666E-5) != 0) return null
if (value_17.compareTo(7_7_7_7_7_7_7f) != 0 || value_17.compareTo(7777777.0F) != 0) return null
if (value_18.compareTo(8888888________8e-9000000_0) != 0 || value_18.compareTo(0.0) != 0) return null
if (value_19.compareTo(9________9_______9______9_____9____9___9__9_9F) != 0 || value_19.compareTo(1.0E9f) != 0) return null
if (value_20.compareTo(1__2_3__4____5_____6__7_89f) != 0 || value_20.compareTo(1.23456792E8F) != 0) return null
if (value_21.compareTo(2__34567e8) != 0 || value_21.compareTo(2.34567E13) != 0) return null
if (value_22.compareTo(345_6E+9_7F) != 0 || value_22.compareTo(Float.POSITIVE_INFINITY) != 0) return null
if (value_23.compareTo(45_____________________________________________________________6E-12313413_4) != 0 || value_23.compareTo(0.0) != 0) return null
if (value_24.compareTo(5_______________________________________________________________________________________________________________________________________________________________________________________5f) != 0 || value_24.compareTo(55.0F) != 0) return null
if (value_25.compareTo(6__________________________________________________54F) != 0 || value_25.compareTo(654.0f) != 0) return null
if (value_26.compareTo(76_5___4e3___________33333333) != 0 || value_26.compareTo(Double.POSITIVE_INFINITY) != 0) return null
if (value_27.compareTo(876543_____________________________________________________________2f) != 0 || value_27.compareTo(8765432.0F) != 0) return null
if (value_28.compareTo(9_8__7654__3_21F) != 0 || value_28.compareTo(9.8765434E8f) != 0) return null
if (value_29.compareTo(000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0__0F) != 0 || value_29.compareTo(0.0) != 0) return null
if (value_30.compareTo(0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f) != 0 || value_30.compareTo(0.0) != 0) return null
if (value_31.compareTo(33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333E-1_0_0) != 0 || value_31.compareTo(3.3333333333333334E-13) != 0) return null
return "OK"
}
@@ -0,0 +1,126 @@
{
"1": {
"pos": {
"3": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Simple real literals suffixed by f/F (the float suffix) with a different whole-number part and fraction part.",
"unexpectedBehaviour": false
}
],
"1": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Simple real literals with a different whole-number part and fraction part.",
"unexpectedBehaviour": false
}
]
}
},
"4": {
"pos": {
"1": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Real literals suffixed by f/F (float suffix) with underscores in a whole-number part and a fraction part.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Real literals suffixed by f/F (float suffix) with an exponent mark and underscores in a whole-number part, a fraction part and an exponent part.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Real literals with an omitted whole-number part and underscores in a whole-number part, a fraction part and an exponent part.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Real literals with an omitted fraction part and underscores in a whole-number part, a fraction part and an exponent part.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Real literals with underscores in a whole-number part and a fraction part.",
"unexpectedBehaviour": false
}
]
}
},
"3": {
"pos": {
"2": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Simple real literals with omitted a fraction part, suffixed by f/F (float suffix).",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Real literals with omitted a fraction part and an exponent mark, suffixed by f/F (float suffix).",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Real literals with omitted a fraction part and an exponent mark.",
"unexpectedBehaviour": false
}
],
"1": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Real literals suffixed by f/F (float suffix) with omitted a whole-number part.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Real literals with omitted a whole-number part and an exponent mark.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Real literals suffixed by f/F (float suffix) with omitted a whole-number part and an exponent mark.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Simple real literals with omitted a whole-number part.",
"unexpectedBehaviour": false
}
]
}
},
"2": {
"pos": {
"1": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Real literals suffixed by f/F (float suffix) with an exponent mark.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Simple real literals with an exponent mark.",
"unexpectedBehaviour": false
}
]
}
}
}
@@ -0,0 +1,48 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 1
* NUMBER: 1
* DESCRIPTION: Decimal integer literals with long literal mark.
*/
val value_1 = 0L
val value_2 = 127L
val value_3 = 128L
val value_4 = -128L
val value_5 = -129L
val value_6 = 32767L
val value_7 = 32768L
val value_8 = -32768L
val value_9 = -32769L
val value_10 = 2147483647L
val value_11 = 2147483648L
val value_12 = -2147483648L
val value_13 = -2147483649L
fun box(): String? {
val value_14 = 9223372036854775807L
val value_15 = -9223372036854775807L
if (value_1 != 0L) return null
if (value_2 != 127L) return null
if (value_3 != 128L) return null
if (value_4 != -128L) return null
if (value_5 != -129L) return null
if (value_6 != 32767L) return null
if (value_7 != 32768L) return null
if (value_8 != -32768L) return null
if (value_9 != -32769L) return null
if (value_10 != 2147483647L) return null
if (value_11 != 2147483648L) return null
if (value_12 != -2147483648L) return null
if (value_13 != -2147483649L) return null
if (value_14 != 9223372036854775807L) return null
if (value_15 != -9223372036854775807L) return null
return "OK"
}
@@ -0,0 +1,48 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 1
* NUMBER: 2
* DESCRIPTION: Hexadecimal integer literals with long literal mark.
*/
val value_1 = 0x0L
val value_2 = 0x7FL
val value_3 = 0X80L
val value_4 = -0X80L
val value_5 = -0x81L
val value_6 = 0x7FFFL
val value_7 = 0x8000L
val value_8 = -0x8000L
val value_9 = -0x8001L
val value_10 = 0x7FFFFFFFL
val value_11 = 0x80000000L
val value_12 = -0x80000000L
val value_13 = -0x80000001L
fun box(): String? {
val value_14 = 0X7FFFFFFFFFFFFFFFL
val value_15 = -0X7FFFFFFFFFFFFFFFL
if (value_1 != 0x0L) return null
if (value_2 != 0x7FL) return null
if (value_3 != 0X80L) return null
if (value_4 != -0X80L) return null
if (value_5 != -0x81L) return null
if (value_6 != 0x7FFFL) return null
if (value_7 != 0x8000L) return null
if (value_8 != -0x8000L) return null
if (value_9 != -0x8001L) return null
if (value_10 != 0x7FFFFFFFL) return null
if (value_11 != 0x80000000L) return null
if (value_12 != -0x80000000L) return null
if (value_13 != -0x80000001L) return null
if (value_14 != 0X7FFFFFFFFFFFFFFFL) return null
if (value_15 != -0X7FFFFFFFFFFFFFFFL) return null
return "OK"
}
@@ -0,0 +1,48 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-100
* PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 1
* NUMBER: 3
* DESCRIPTION: Binary integer literals with long literal mark.
*/
val value_1 = 0b0L
val value_2 = 0B1111111L
val value_3 = 0b10000000L
val value_4 = -0b10000000L
val value_5 = -0b10000001L
val value_6 = 0B111111111111111L
val value_7 = 0b1000000000000000L
val value_8 = -0b1000000000000000L
val value_9 = -0b1000000000000001L
val value_10 = 0b1111111111111111111111111111111L
val value_11 = 0B10000000000000000000000000000000L
val value_12 = -0B10000000000000000000000000000000L
val value_13 = -0b10000000000000000000000000000001L
fun box(): String? {
val value_14 = 0X7FFFFFFFFFFFFFFFL
val value_15 = -0X7FFFFFFFFFFFFFFFL
if (value_1 != 0b0L) return null
if (value_2 != 0B1111111L) return null
if (value_3 != 0b10000000L) return null
if (value_4 != -0b10000000L) return null
if (value_5 != -0b10000001L) return null
if (value_6 != 0B111111111111111L) return null
if (value_7 != 0b1000000000000000L) return null
if (value_8 != -0b1000000000000000L) return null
if (value_9 != -0b1000000000000001L) return null
if (value_10 != 0b1111111111111111111111111111111L) return null
if (value_11 != 0B10000000000000000000000000000000L) return null
if (value_12 != -0B10000000000000000000000000000000L) return null
if (value_13 != -0b10000000000000000000000000000001L) return null
if (value_14 != 0b111111111111111111111111111111111111111111111111111111111111111L) return null
if (value_15 != -0B111111111111111111111111111111111111111111111111111111111111111L) return null
return "OK"
}
@@ -0,0 +1,26 @@
{
"1": {
"pos": {
"1": [
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Hexadecimal integer literals with long literal mark.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Binary integer literals with long literal mark.",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-100",
"casesNumber": 0,
"description": "Decimal integer literals with long literal mark.",
"unexpectedBehaviour": false
}
]
}
}
}