Reformat stdlib tests and samples
#KT-5558
This commit is contained in:
@@ -187,7 +187,7 @@ class RegexTest {
|
||||
@Test fun replaceEvaluator() {
|
||||
val input = "/12/456/7890/"
|
||||
val pattern = "\\d+".toRegex()
|
||||
assertEquals("/2/3/4/", pattern.replace(input, { it.value.length.toString() } ))
|
||||
assertEquals("/2/3/4/", pattern.replace(input, { it.value.length.toString() }))
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -157,24 +157,30 @@ class StringNumberConversionTest {
|
||||
|
||||
internal fun doubleTotalOrderEquals(a: Double?, b: Double?): Boolean = (a as Any?) == b
|
||||
|
||||
internal fun <T : Any> compareConversion(convertOrFail: (String) -> T,
|
||||
convertOrNull: (String) -> T?,
|
||||
equality: (T, T?) -> Boolean = { a, b -> a == b },
|
||||
assertions: ConversionContext<T>.() -> Unit) {
|
||||
internal fun <T : Any> compareConversion(
|
||||
convertOrFail: (String) -> T,
|
||||
convertOrNull: (String) -> T?,
|
||||
equality: (T, T?) -> Boolean = { a, b -> a == b },
|
||||
assertions: ConversionContext<T>.() -> Unit
|
||||
) {
|
||||
ConversionContext(convertOrFail, convertOrNull, equality).assertions()
|
||||
}
|
||||
|
||||
|
||||
internal fun <T : Any> compareConversionWithRadix(convertOrFail: String.(Int) -> T,
|
||||
convertOrNull: String.(Int) -> T?,
|
||||
assertions: ConversionWithRadixContext<T>.() -> Unit) {
|
||||
internal fun <T : Any> compareConversionWithRadix(
|
||||
convertOrFail: String.(Int) -> T,
|
||||
convertOrNull: String.(Int) -> T?,
|
||||
assertions: ConversionWithRadixContext<T>.() -> Unit
|
||||
) {
|
||||
ConversionWithRadixContext(convertOrFail, convertOrNull).assertions()
|
||||
}
|
||||
|
||||
|
||||
internal class ConversionContext<T: Any>(val convertOrFail: (String) -> T,
|
||||
val convertOrNull: (String) -> T?,
|
||||
val equality: (T, T?) -> Boolean) {
|
||||
internal class ConversionContext<T : Any>(
|
||||
val convertOrFail: (String) -> T,
|
||||
val convertOrNull: (String) -> T?,
|
||||
val equality: (T, T?) -> Boolean
|
||||
) {
|
||||
|
||||
private fun assertEquals(expected: T, actual: T?, input: String, operation: String) {
|
||||
assertTrue(equality(expected, actual), "Expected $operation('$input') to produce $expected but was $actual")
|
||||
@@ -191,8 +197,10 @@ internal class ConversionContext<T: Any>(val convertOrFail: (String) -> T,
|
||||
}
|
||||
}
|
||||
|
||||
internal class ConversionWithRadixContext<T: Any>(val convertOrFail: (String, Int) -> T,
|
||||
val convertOrNull: (String, Int) -> T?) {
|
||||
internal class ConversionWithRadixContext<T : Any>(
|
||||
val convertOrFail: (String, Int) -> T,
|
||||
val convertOrNull: (String, Int) -> T?
|
||||
) {
|
||||
fun assertProduces(radix: Int, input: String, output: T) {
|
||||
assertEquals(output, convertOrFail(input.removeLeadingPlusOnJava6(), radix))
|
||||
assertEquals(output, convertOrNull(input, radix))
|
||||
|
||||
@@ -21,8 +21,9 @@ fun withOneCharSequenceArg(f: ((String) -> CharSequence) -> Unit) {
|
||||
for (arg1Builder in charSequenceBuilders) f(arg1Builder)
|
||||
}
|
||||
|
||||
fun withOneCharSequenceArg(arg1: String, f: (CharSequence) -> Unit)
|
||||
= withOneCharSequenceArg { arg1Builder -> f(arg1Builder(arg1)) }
|
||||
fun withOneCharSequenceArg(arg1: String, f: (CharSequence) -> Unit) {
|
||||
withOneCharSequenceArg { arg1Builder -> f(arg1Builder(arg1)) }
|
||||
}
|
||||
|
||||
fun withTwoCharSequenceArgs(f: ((String) -> CharSequence, (String) -> CharSequence) -> Unit) {
|
||||
for (arg1Builder in charSequenceBuilders)
|
||||
@@ -35,6 +36,7 @@ fun assertContentEquals(expected: String, actual: CharSequence, message: String?
|
||||
}
|
||||
|
||||
// helper predicates available on both platforms
|
||||
|
||||
fun Char.isAsciiDigit() = this in '0'..'9'
|
||||
fun Char.isAsciiLetter() = this in 'A'..'Z' || this in 'a'..'z'
|
||||
fun Char.isAsciiUpperCase() = this in 'A'..'Z'
|
||||
@@ -55,8 +57,7 @@ class StringTest {
|
||||
val value = case.value?.let { arg1(it) }
|
||||
assertEquals(case.isNull || case.isEmpty, value.isNullOrEmpty(), "failed for case '$value'")
|
||||
assertEquals(case.isNull || case.isBlank, value.isNullOrBlank(), "failed for case '$value'")
|
||||
if (value != null)
|
||||
{
|
||||
if (value != null) {
|
||||
assertEquals(case.isEmpty, value.isEmpty(), "failed for case '$value'")
|
||||
assertEquals(case.isBlank, value.isBlank(), "failed for case '$value'")
|
||||
}
|
||||
@@ -116,7 +117,7 @@ class StringTest {
|
||||
@Test fun endsWithStringForCharSequence() = withTwoCharSequenceArgs { arg1, arg2 ->
|
||||
fun String.endsWithCs(suffix: String, ignoreCase: Boolean = false): Boolean =
|
||||
arg1(this).endsWith(arg2(suffix), ignoreCase)
|
||||
|
||||
|
||||
assertTrue("abcd".endsWithCs("d"))
|
||||
assertTrue("abcd".endsWithCs("abcd"))
|
||||
assertFalse("abcd".endsWithCs("b"))
|
||||
@@ -265,7 +266,7 @@ class StringTest {
|
||||
assertContentEquals("sae text", s.removeRange(2, 5))
|
||||
assertContentEquals("sa text", s.removeRange(2..5))
|
||||
|
||||
assertContentEquals(s.toString(), s.removeRange(2,2))
|
||||
assertContentEquals(s.toString(), s.removeRange(2, 2))
|
||||
|
||||
// symmetry with indices
|
||||
assertContentEquals("", s.removeRange(s.indices))
|
||||
@@ -337,7 +338,7 @@ class StringTest {
|
||||
|
||||
@Test fun stringIterator() = withOneCharSequenceArg("239") { data ->
|
||||
var sum = 0
|
||||
for(c in data)
|
||||
for (c in data)
|
||||
sum += (c - '0')
|
||||
assertTrue(sum == 14)
|
||||
}
|
||||
@@ -358,8 +359,8 @@ class StringTest {
|
||||
assertContentEquals("a", "\ra".trimStartCS())
|
||||
assertContentEquals("a", "\na".trimStartCS())
|
||||
|
||||
assertContentEquals("a=", arg1("-=-=a=").trimStart('-','='))
|
||||
assertContentEquals("123a", arg1("ab123a").trimStart { !it.isAsciiDigit() })
|
||||
assertContentEquals("a=", arg1("-=-=a=").trimStart('-', '='))
|
||||
assertContentEquals("123a", arg1("ab123a").trimStart { !it.isAsciiDigit() })
|
||||
}
|
||||
|
||||
@Test fun trimEnd() = withOneCharSequenceArg { arg1 ->
|
||||
@@ -378,20 +379,21 @@ class StringTest {
|
||||
assertContentEquals("a", "a\r".trimEndCS())
|
||||
assertContentEquals("a", "a\n".trimEndCS())
|
||||
|
||||
assertContentEquals("=a", arg1("=a=-=-").trimEnd('-','='))
|
||||
assertContentEquals("=a", arg1("=a=-=-").trimEnd('-', '='))
|
||||
assertContentEquals("ab123", arg1("ab123a").trimEnd { !it.isAsciiDigit() })
|
||||
}
|
||||
|
||||
@Test fun trimStartAndEnd() = withOneCharSequenceArg { arg1 ->
|
||||
val examples = arrayOf("a",
|
||||
" a ",
|
||||
" a ",
|
||||
" a b ",
|
||||
"\ta\tb\t",
|
||||
"\t\ta\t\t",
|
||||
"\ra\r",
|
||||
"\na\n",
|
||||
" \u00A0 a \u00A0 "
|
||||
val examples = arrayOf(
|
||||
"a",
|
||||
" a ",
|
||||
" a ",
|
||||
" a b ",
|
||||
"\ta\tb\t",
|
||||
"\t\ta\t\t",
|
||||
"\ra\r",
|
||||
"\na\n",
|
||||
" \u00A0 a \u00A0 "
|
||||
)
|
||||
|
||||
for ((source, example) in examples.map { it to arg1(it) }) {
|
||||
@@ -399,8 +401,9 @@ class StringTest {
|
||||
assertContentEquals(source.trimStart().trimEnd(), example.trim())
|
||||
}
|
||||
|
||||
val examplesForPredicate = arrayOf("123",
|
||||
"-=123=-"
|
||||
val examplesForPredicate = arrayOf(
|
||||
"123",
|
||||
"-=123=-"
|
||||
)
|
||||
|
||||
val trimChars = charArrayOf('-', '=')
|
||||
@@ -676,9 +679,15 @@ class StringTest {
|
||||
assertEquals(2, string.lastIndexOf('e', 3, ignoreCase = true))
|
||||
|
||||
|
||||
for (startIndex in -1..string.length+1){
|
||||
assertEquals(string.indexOfAny(charArrayOf('e'), startIndex, ignoreCase = true), string.indexOf('E', startIndex, ignoreCase = true))
|
||||
assertEquals(string.lastIndexOfAny(charArrayOf('E'), startIndex, ignoreCase = true), string.lastIndexOf('e', startIndex, ignoreCase = true))
|
||||
for (startIndex in -1..string.length + 1) {
|
||||
assertEquals(
|
||||
string.indexOfAny(charArrayOf('e'), startIndex, ignoreCase = true),
|
||||
string.indexOf('E', startIndex, ignoreCase = true)
|
||||
)
|
||||
assertEquals(
|
||||
string.lastIndexOfAny(charArrayOf('E'), startIndex, ignoreCase = true),
|
||||
string.lastIndexOf('e', startIndex, ignoreCase = true)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -738,8 +747,8 @@ class StringTest {
|
||||
|
||||
@Test fun replaceFirst() {
|
||||
val input = "AbbabA"
|
||||
assertEquals("Abb${'$'}bA", input.replaceFirst('a','$'))
|
||||
assertEquals("${'$'}bbabA", input.replaceFirst('a','$', ignoreCase = true))
|
||||
assertEquals("Abb${'$'}bA", input.replaceFirst('a', '$'))
|
||||
assertEquals("${'$'}bbabA", input.replaceFirst('a', '$', ignoreCase = true))
|
||||
// doesn't pass in Rhino JS
|
||||
// assertEquals("schrodinger", "schrÖdinger".replaceFirst('ö', 'o', ignoreCase = true))
|
||||
|
||||
@@ -789,8 +798,8 @@ class StringTest {
|
||||
assertTrue(data === newData)
|
||||
|
||||
// static types test
|
||||
assertStaticTypeIs<String>("x".onEach { })
|
||||
assertStaticTypeIs<StringBuilder>(result.onEach { })
|
||||
assertStaticTypeIs<String>("x".onEach { })
|
||||
assertStaticTypeIs<StringBuilder>(result.onEach { })
|
||||
}
|
||||
|
||||
|
||||
@@ -989,7 +998,7 @@ class StringTest {
|
||||
@Test fun fold() = withOneCharSequenceArg { arg1 ->
|
||||
// calculate number of digits in the string
|
||||
val data = arg1("a1b2c3def")
|
||||
val result = data.fold(0, { digits, c -> if(c.isAsciiDigit()) digits + 1 else digits } )
|
||||
val result = data.fold(0, { digits, c -> if (c.isAsciiDigit()) digits + 1 else digits })
|
||||
assertEquals(3, result)
|
||||
|
||||
//simulate all method
|
||||
@@ -1002,7 +1011,7 @@ class StringTest {
|
||||
@Test fun foldRight() = withOneCharSequenceArg { arg1 ->
|
||||
// calculate number of digits in the string
|
||||
val data = arg1("a1b2c3def")
|
||||
val result = data.foldRight(0, { c, digits -> if(c.isAsciiDigit()) digits + 1 else digits })
|
||||
val result = data.foldRight(0, { c, digits -> if (c.isAsciiDigit()) digits + 1 else digits })
|
||||
assertEquals(3, result)
|
||||
|
||||
//simulate all method
|
||||
@@ -1070,8 +1079,8 @@ class StringTest {
|
||||
// group characters by their case
|
||||
val result = data.groupBy { it.isAsciiUpperCase() }
|
||||
assertEquals(2, result.size)
|
||||
assertEquals(listOf('a','b','b','a','c'), result[false])
|
||||
assertEquals(listOf('A','A','B','D'), result[true])
|
||||
assertEquals(listOf('a', 'b', 'b', 'a', 'c'), result[false])
|
||||
assertEquals(listOf('A', 'A', 'B', 'D'), result[true])
|
||||
}
|
||||
|
||||
@Test fun joinToString() {
|
||||
|
||||
Reference in New Issue
Block a user