Pattern implementation for JS.

This commit is contained in:
Ilya Gorbunov
2015-04-08 20:32:22 +03:00
parent da1641e0f8
commit a4784dfa78
8 changed files with 174 additions and 146 deletions
@@ -0,0 +1,30 @@
package test.text
import kotlin.test.*
import kotlin.text.*
import org.junit.Test as test
class PatternJVMTest {
test fun matchGroups() {
val input = "1a 2b 3c"
val pattern = "(\\d)(\\w)".toPattern()
val matches = pattern.matchAll(input).toList()
assertTrue(matches.all { it.groups.size() == 3 })
val m1 = matches[0]
assertEquals("1a", m1.groups[0]?.value)
assertEquals(0..1, m1.groups[0]?.range)
assertEquals("1", m1.groups[1]?.value)
assertEquals(0..0, m1.groups[1]?.range)
assertEquals("a", m1.groups[2]?.value)
assertEquals(1..1, m1.groups[2]?.range)
val m2 = matches[1]
assertEquals("2", m2.groups[1]?.value)
assertEquals(3..3, m2.groups[1]?.range)
assertEquals("b", m2.groups[2]?.value)
assertEquals(4..4, m2.groups[2]?.range)
}
}
+2 -6
View File
@@ -1,7 +1,8 @@
package test.text
import kotlin.test.*
import kotlin.text.*
import kotlin.test.*
import org.junit.Test as test
class PatternTest {
@@ -48,17 +49,12 @@ class PatternTest {
assertTrue(matches.all { it.groups.size() == 3 })
val m1 = matches[0]
assertEquals("1a", m1.groups[0]?.value)
assertEquals(0..1, m1.groups[0]?.range)
assertEquals("1", m1.groups[1]?.value)
assertEquals(0..0, m1.groups[1]?.range)
assertEquals("a", m1.groups[2]?.value)
assertEquals(1..1, m1.groups[2]?.range)
val m2 = matches[1]
assertEquals("2", m2.groups[1]?.value)
assertEquals(3..3, m2.groups[1]?.range)
assertEquals("b", m2.groups[2]?.value)
assertEquals(4..4, m2.groups[2]?.range)
}
test fun matchOptionalGroup() {