Skip to content

Commit 1db28a7

Browse files
nicolasstuckisom-snytt
authored andcommitted
SI-9737 [no-merge] Backport stringOf ParIterable
Cherry-picked c5f3d3f286ee5c26c8ddcf10f6878058e8f7e040 Edited comment: in stringOf, let GenIterable subsume both Iterable and ParIterable. This change is required for Scala.js compatibility as it does not support parallel collections. Conflicts: src/library/scala/runtime/ScalaRunTime.scala
1 parent 0215ec4 commit 1db28a7

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

test/junit/scala/runtime/ScalaRunTimeTest.scala

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,61 @@ class ScalaRunTimeTest {
6767
val c = new C()
6868
assertFalse(c.toString, isTuple(c))
6969
}
70+
71+
@Test
72+
def testStringOf() {
73+
import ScalaRunTime.stringOf
74+
import scala.collection._
75+
import parallel.ParIterable
76+
77+
assertEquals("null", stringOf(null))
78+
assertEquals( "\"\"", stringOf(""))
79+
80+
assertEquals("abc", stringOf("abc"))
81+
assertEquals("\" abc\"", stringOf(" abc"))
82+
assertEquals("\"abc \"", stringOf("abc "))
83+
84+
assertEquals("""Array()""", stringOf(Array.empty[AnyRef]))
85+
assertEquals("""Array()""", stringOf(Array.empty[Int]))
86+
assertEquals("""Array(1, 2, 3)""", stringOf(Array(1, 2, 3)))
87+
assertEquals("""Array(a, "", " c", null)""", stringOf(Array("a", "", " c", null)))
88+
assertEquals("""Array(Array("", 1, Array(5)), Array(1))""",
89+
stringOf(Array(Array("", 1, Array(5)), Array(1))))
90+
91+
val map = Map(1->"", 2->"a", 3->" a", 4->null)
92+
assertEquals(s"""${map.stringPrefix}(1 -> "", 2 -> a, 3 -> " a", 4 -> null)""", stringOf(map))
93+
assertEquals(s"""${map.stringPrefix}(1 -> "", 2 -> a)""", stringOf(map, 2))
94+
95+
val iterable = Iterable("a", "", " c", null)
96+
assertEquals(s"""${iterable.stringPrefix}(a, "", " c", null)""", stringOf(iterable))
97+
assertEquals(s"""${iterable.stringPrefix}(a, "")""", stringOf(iterable, 2))
98+
99+
val parIterable = ParIterable("a", "", " c", null)
100+
assertEquals(s"""${parIterable.stringPrefix}(a, "", " c", null)""", stringOf(parIterable))
101+
assertEquals(s"""${parIterable.stringPrefix}(a, "")""", stringOf(parIterable, 2))
102+
103+
val traversable = new Traversable[Int] {
104+
def foreach[U](f: Int => U): Unit = (0 to 3).foreach(f)
105+
}
106+
assertEquals(s"${traversable.stringPrefix}(0, 1, 2, 3)", stringOf(traversable))
107+
assertEquals(s"${traversable.stringPrefix}(0, 1)", stringOf(traversable, 2))
108+
109+
val tuple1 = Tuple1(0)
110+
assertEquals("(0,)", stringOf(tuple1))
111+
assertEquals("(0,)", stringOf(tuple1, 0))
112+
113+
val tuple2 = Tuple2(0, 1)
114+
assertEquals("(0,1)", stringOf(tuple2))
115+
assertEquals("(0,1)", stringOf(tuple2, 0))
116+
117+
val tuple3 = Tuple3(0, 1, 2)
118+
assertEquals("(0,1,2)", stringOf(tuple3))
119+
assertEquals("(0,1,2)", stringOf(tuple3, 0))
120+
121+
val x = new Object {
122+
override def toString(): String = "this is the stringOf string"
123+
}
124+
assertEquals(stringOf(x), "this is the stringOf string")
125+
assertEquals(stringOf(x, 2), "this is the stringOf string")
126+
}
70127
}

0 commit comments

Comments
 (0)