From c6d6aebd2f7b5797d5eb11463710690a0bf59bb9 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Mon, 8 Dec 2014 20:39:10 +0300 Subject: [PATCH] Added tests for stdlib Array constructors --- .../arrays/arrayConstructorsSimple.kt | 25 ++++++++++++++++ .../arrays/multiArrayConstructors.kt | 29 +++++++++++++++++++ ...lackBoxWithStdlibCodegenTestGenerated.java | 12 ++++++++ 3 files changed, 66 insertions(+) create mode 100644 compiler/testData/codegen/boxWithStdlib/arrays/arrayConstructorsSimple.kt create mode 100644 compiler/testData/codegen/boxWithStdlib/arrays/multiArrayConstructors.kt diff --git a/compiler/testData/codegen/boxWithStdlib/arrays/arrayConstructorsSimple.kt b/compiler/testData/codegen/boxWithStdlib/arrays/arrayConstructorsSimple.kt new file mode 100644 index 00000000000..87558b42c95 --- /dev/null +++ b/compiler/testData/codegen/boxWithStdlib/arrays/arrayConstructorsSimple.kt @@ -0,0 +1,25 @@ +import kotlin.test.assertEquals + +fun simpleIntArray(): Array = Array(3) { it } +fun simpleDoubleArray(): Array = Array(3) { it.toDouble() + 0.1 } +fun simpleStringArray(): Array = Array(3) { it.toString() } + +fun box(): String { + val ia = simpleIntArray() + assertEquals(0, ia[0]) + assertEquals(1, ia[1]) + assertEquals(2, ia[2]) + + val da = simpleDoubleArray() + assertEquals(0.1, da[0]) + assertEquals(1.1, da[1]) + assertEquals(2.1, da[2]) + + val sa = simpleStringArray() + assertEquals("0", sa[0]) + assertEquals("1", sa[1]) + assertEquals("2", sa[2]) + + return "OK" +} + diff --git a/compiler/testData/codegen/boxWithStdlib/arrays/multiArrayConstructors.kt b/compiler/testData/codegen/boxWithStdlib/arrays/multiArrayConstructors.kt new file mode 100644 index 00000000000..28f422f0ab9 --- /dev/null +++ b/compiler/testData/codegen/boxWithStdlib/arrays/multiArrayConstructors.kt @@ -0,0 +1,29 @@ +import kotlin.test.assertEquals + +fun stringMultiArray(): Array> = Array(3) { + i -> Array(3) { j -> "$i-$j" } +} + +fun stringNullableMultiArray(): Array> = Array(3) { + i -> if (i == 1) Array(3) { j -> "$i-$j" } as Array else arrayOfNulls(3) +} + +fun box(): String { + val matrix = stringMultiArray() + + for (i in 0..2) { + for (j in 0..2) { + assertEquals("$i-$j", matrix[i][j], "matrix") + } + } + + val matrixNullable = stringNullableMultiArray() + + for (j in 0..2) { + assertEquals(null, matrixNullable[0][j], "nullable") + assertEquals("1-$j", matrixNullable[1][j], "nullable") + assertEquals(null, matrixNullable[2][j], "nullable") + } + + return "OK" +} diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java index fa3b289cf01..8a931d128d4 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java @@ -108,6 +108,12 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxWithStdlib/arrays"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("arrayConstructorsSimple.kt") + public void testArrayConstructorsSimple() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/arrays/arrayConstructorsSimple.kt"); + doTestWithStdlib(fileName); + } + @TestMetadata("arrayGetAssignMultiIndex.kt") public void testArrayGetAssignMultiIndex() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/arrays/arrayGetAssignMultiIndex.kt"); @@ -180,6 +186,12 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode doTestWithStdlib(fileName); } + @TestMetadata("multiArrayConstructors.kt") + public void testMultiArrayConstructors() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/arrays/multiArrayConstructors.kt"); + doTestWithStdlib(fileName); + } + @TestMetadata("nonNullArray.kt") public void testNonNullArray() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/arrays/nonNullArray.kt");