blob: 5b13397d6a699e779c06320140d5c1a3aff50ebc (
plain) (
blame)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
package scala.util.matching
import org.junit.Assert._
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.JUnit4
@RunWith(classOf[JUnit4])
class RegexTest {
@Test def t8022CharSequence(): Unit = {
val full = """.*: (.)$""".r
val text = " When I use this operator: *"
// Testing 2.10.x compatibility of the return types of unapplySeq
val x :: Nil = full.unapplySeq(text: Any).get
val y :: Nil = full.unapplySeq(text: CharSequence).get
assertEquals("*", x)
assertEquals("*", y)
}
@Test def t8022Match(): Unit = {
val R = """(\d)""".r
val matchh = R.findFirstMatchIn("a1").get
// Testing 2.10.x compatibility of the return types of unapplySeq
val x :: Nil = R.unapplySeq(matchh: Any).get
val y :: Nil = R.unapplySeq(matchh).get
assertEquals("1", x)
assertEquals("1", y)
}
@Test def t8787nullMatch() = {
val r = """\d+""".r
val s: String = null
val x = s match { case r() => 1 ; case _ => 2 }
assertEquals(2, x)
}
@Test def t8787nullMatcher() = {
val r = """(\d+):(\d+)""".r
val s = "1:2 3:4 5:6"
val z = ((r findAllMatchIn s).toList :+ null) flatMap {
case r(x, y) => Some((x.toInt, y.toInt))
case _ => None
}
assertEquals(List((1,2),(3,4),(5,6)), z)
}
}
|