Skip to content

Commit 7b0b819

Browse files
committed
Add regression tests for Tuple.toArray
1 parent ed567c1 commit 7b0b819

File tree

3 files changed

+133
-0
lines changed

3 files changed

+133
-0
lines changed

compiler/test/dotty/tools/dotc/CompilationTests.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ class CompilationTests extends ParallelTesting {
195195
compileFile("tests/run-custom-args/tuple-cons.scala", allowDeepSubtypes),
196196
compileFile("tests/run-custom-args/i5256.scala", allowDeepSubtypes),
197197
compileFile("tests/run-custom-args/no-useless-forwarders.scala", defaultOptions and "-Xmixin-force-forwarders:false"),
198+
compileFilesInDir("tests/run-deep-subtype", allowDeepSubtypes),
198199
compileFilesInDir("tests/run", defaultOptions)
199200
).checkRuns()
200201
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
[]
2+
[0]
3+
[0, 1]
4+
[0, 1, 2]
5+
[0, 1, 2, 3]
6+
[0, 1, 2, 3, 4]
7+
[0, 1, 2, 3, 4, 5]
8+
[0, 1, 2, 3, 4, 5, 6]
9+
[0, 1, 2, 3, 4, 5, 6, 7]
10+
[0, 1, 2, 3, 4, 5, 6, 7, 8]
11+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
12+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
13+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
14+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
15+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
16+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
17+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
18+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
19+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
20+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
21+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
22+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
23+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
24+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
25+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
26+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
27+
[]
28+
[1]
29+
[1, 2]
30+
[1, 2, 3]
31+
[1, 2, 3, 4]
32+
[1, 2, 3, 4, 5]
33+
[1, 2, 3, 4, 5, 6]
34+
[1, 2, 3, 4, 5, 6, 7]
35+
[1, 2, 3, 4, 5, 6, 7, 8]
36+
[1, 2, 3, 4, 5, 6, 7, 8, 9]
37+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
38+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
39+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
40+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
41+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
42+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
43+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
44+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
45+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
46+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
47+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
48+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
49+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
50+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
51+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
52+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
53+
[1]
54+
[1, 2]
55+
[1, 2, 3]
56+
[1, 2, 3, 4]
57+
[1, 2, 3, 4, 5]
58+
[1, 2, 3, 4, 5, 6]
59+
[1, 2, 3, 4, 5, 6, 7]
60+
[1, 2, 3, 4, 5, 6, 7, 8]
61+
[1, 2, 3, 4, 5, 6, 7, 8, 9]
62+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import scala.reflect.ClassTag
2+
3+
object Test {
4+
def main(args: Array[String]): Unit = {
5+
6+
def printArray(xs: Array[Object]): Unit =
7+
println(java.util.Arrays.deepToString(xs))
8+
def testArray[T: ClassTag](n: Int, elem: Int => T): Unit = {
9+
val t: Tuple = Tuple.fromArray(Array.tabulate(n)(elem))
10+
printArray(t.toArray)
11+
}
12+
13+
for (i <- 0 to 25)
14+
testArray(i, j => j)
15+
16+
printArray(().toArray)
17+
printArray(Tuple1(1).toArray)
18+
printArray((1, 2).toArray)
19+
printArray((1, 2, 3).toArray)
20+
printArray((1, 2, 3, 4).toArray)
21+
printArray((1, 2, 3, 4, 5).toArray)
22+
printArray((1, 2, 3, 4, 5, 6).toArray)
23+
printArray((1, 2, 3, 4, 5, 6, 7).toArray)
24+
printArray((1, 2, 3, 4, 5, 6, 7, 8).toArray)
25+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9).toArray)
26+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10).toArray)
27+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11).toArray)
28+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12).toArray)
29+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13).toArray)
30+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14).toArray)
31+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15).toArray)
32+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16).toArray)
33+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17).toArray)
34+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18).toArray)
35+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19).toArray)
36+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20).toArray)
37+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21).toArray)
38+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22).toArray)
39+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23).toArray)
40+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24).toArray)
41+
printArray((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25).toArray)
42+
43+
printArray((1 *: ()).toArray)
44+
printArray((1 *: 2 *: ()).toArray)
45+
printArray((1 *: 2 *: 3 *: ()).toArray)
46+
printArray((1 *: 2 *: 3 *: 4 *: ()).toArray)
47+
printArray((1 *: 2 *: 3 *: 4 *: 5 *: ()).toArray)
48+
printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: ()).toArray)
49+
printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: ()).toArray)
50+
printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: ()).toArray)
51+
printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: ()).toArray)
52+
printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: ()).toArray)
53+
// FIXME performace
54+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: ()).toArray)
55+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: ()).toArray)
56+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: ()).toArray)
57+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: 14 *: ()).toArray)
58+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: 14 *: 15 *: ()).toArray)
59+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: 14 *: 15 *: 16 *: ()).toArray)
60+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: 14 *: 15 *: 16 *: 17 *: ()).toArray)
61+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: 14 *: 15 *: 16 *: 17 *: 18 *: ()).toArray)
62+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: 14 *: 15 *: 16 *: 17 *: 18 *: 19 *: ()).toArray)
63+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: 14 *: 15 *: 16 *: 17 *: 18 *: 19 *: 20 *: ()).toArray)
64+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: 14 *: 15 *: 16 *: 17 *: 18 *: 19 *: 20 *: 21 *: ()).toArray)
65+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: 14 *: 15 *: 16 *: 17 *: 18 *: 19 *: 20 *: 21 *: 22 *: ()).toArray)
66+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: 14 *: 15 *: 16 *: 17 *: 18 *: 19 *: 20 *: 21 *: 22 *: 23 *: ()).toArray)
67+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: 14 *: 15 *: 16 *: 17 *: 18 *: 19 *: 20 *: 21 *: 22 *: 23 *: 24 *: ()).toArray)
68+
// printArray((1 *: 2 *: 3 *: 4 *: 5 *: 6 *: 7 *: 8 *: 9 *: 10 *: 11 *: 12 *: 13 *: 14 *: 15 *: 16 *: 17 *: 18 *: 19 *: 20 *: 21 *: 22 *: 23 *: 24 *: 25 *: ()).toArray)
69+
}
70+
}

0 commit comments

Comments
 (0)