Fix NameToken.parse
This commit is contained in:
parent
e7db1cc763
commit
1c60453244
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Name index comparator
|
- Name index comparator
|
||||||
|
- Specialized ByteArrayValue
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- DataSink `branch` is replaced with `putAll` to avoid confusion with DataTree methods
|
- DataSink `branch` is replaced with `putAll` to avoid confusion with DataTree methods
|
||||||
@ -15,7 +16,8 @@
|
|||||||
### Fixed
|
### Fixed
|
||||||
- `listOfScheme` and `listOfConvertable` delegates provides correct items order.
|
- `listOfScheme` and `listOfConvertable` delegates provides correct items order.
|
||||||
- Scheme meta setter works with proper sub-branch.
|
- Scheme meta setter works with proper sub-branch.
|
||||||
-
|
- NameToken.parse improper work with indices
|
||||||
|
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ public class NameToken(public val body: String, public val index: String? = null
|
|||||||
public fun parse(string: String): NameToken {
|
public fun parse(string: String): NameToken {
|
||||||
val body = string.substringBefore('[')
|
val body = string.substringBefore('[')
|
||||||
val index = string.substringAfter('[', "")
|
val index = string.substringAfter('[', "")
|
||||||
if (index.isNotEmpty() && index.endsWith(']')) error("NameToken with index must end with ']'")
|
if (index.isNotEmpty() && !index.endsWith(']')) error("NameToken with index must end with ']'")
|
||||||
return NameToken(body, index.removeSuffix("]"))
|
return NameToken(body, index.removeSuffix("]"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
package space.kscience.dataforge.names
|
package space.kscience.dataforge.names
|
||||||
|
|
||||||
import kotlin.test.Test
|
import kotlin.test.*
|
||||||
import kotlin.test.assertEquals
|
|
||||||
import kotlin.test.assertFalse
|
|
||||||
import kotlin.test.assertTrue
|
|
||||||
|
|
||||||
class NameTest {
|
class NameTest {
|
||||||
@Test
|
@Test
|
||||||
@ -50,4 +47,19 @@ class NameTest {
|
|||||||
val name = Name.parse("a.b.c")
|
val name = Name.parse("a.b.c")
|
||||||
assertEquals("a.b".parseAsName(), name.cutLast())
|
assertEquals("a.b".parseAsName(), name.cutLast())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun tokenParseTest(){
|
||||||
|
val token1 = NameToken.parse("token[index]")
|
||||||
|
assertEquals("token", token1.body)
|
||||||
|
assertEquals("index", token1.index)
|
||||||
|
|
||||||
|
val token2 = NameToken.parse("token-body")
|
||||||
|
assertEquals("token-body", token2.body)
|
||||||
|
assertEquals("", token2.index)
|
||||||
|
|
||||||
|
assertFails {
|
||||||
|
NameToken.parse("token[22")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user