@@ -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