Skip to content

Commit 8b67f48

Browse files
committed
More tests
1 parent d25b11a commit 8b67f48

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

tests/neg/iarrays.scala

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
object Test {
2+
3+
// Can't allocate an IArray
4+
new IArray[String](10) // error: not a class type // error: too many arguments
5+
6+
val xs = IArray(1, 2, 3)
7+
8+
// Can't have a wildcard IArray
9+
val ys: IArray[_] = xs
10+
11+
// Can't update an IArray
12+
xs(0) = 1 // error: value update is not a member
13+
xs(1) += 1 // error: value += is not a member
14+
15+
}

tests/neg/iarrays1.scala

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
object Test {
2+
3+
// Can't allocate an IArray
4+
5+
val xs = IArray(1, 2, 3)
6+
7+
// Can't have a wildcard IArray
8+
val ys: IArray[_] = xs // error: unreducible application
9+
10+
}

tests/run/iarrays.scala

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ object Test extends App {
2525
acc
2626
}
2727

28+
def reduce2[T <: AnyRef](xs: IArray[T], z: T, op: (T, T) => T) = {
29+
var acc = z
30+
for (i <- 0 until xs.length)
31+
acc = op(acc, xs(i))
32+
acc
33+
}
34+
2835
def flatten[T: ClassTag](ys: IArray[IArray[T]]) = {
2936
var len = 0
3037
for (i <- 0 until ys.length) len += ys(i).length
@@ -42,6 +49,9 @@ object Test extends App {
4249
val ys = IArray.concat(xs, xs, xs)
4350
assert(reduce(ys, 0, _ + _) == 18)
4451

52+
val ss = IArray("a", "b", "c")
53+
assert(reduce2(ss, "", _ ++ _) == "abc")
54+
4555
val zss = IArray.fill(2, 3)(1)
4656
val zs = flatten(zss)
4757
assert(reduce(zs, 0, _ + _) == 6)
@@ -53,5 +63,6 @@ object Test extends App {
5363

5464
val as: IArray[Any] = IArray(1, "hello")
5565
assert(as(as.length - 1) == "hello")
66+
assert(reduce(as, 0, (x, y) => x.toString ++ y.toString) == "01hello")
5667

5768
}

0 commit comments

Comments
 (0)