[Stdlib] Fix K/N StringBuilder insertRange capacity issue

This commit is contained in:
Svyatoslav Kuzmich
2021-09-22 21:41:40 +03:00
parent 80c9dd3440
commit 6ad6bca503
2 changed files with 9 additions and 0 deletions
@@ -341,6 +341,14 @@ class StringBuilderTest {
assertFails { sb.insertRange(0, charArrayOf('_', '*', '#'), 0, 4) }
assertFails { sb.insertRange(0, charArrayOf('_', '*', '#'), 2, 1) }
assertFails { sb.insertRange(0, charArrayOf('_', '*', '#'), 2, -1) }
// Test insertion of large arrays that are likely to trigger increase of underlying array capacity
sb.insert(0, CharArray(1000) { ',' })
assertTrue(sb.toString().take(1000).all { it == ',' })
assertEquals("_my insertT CharArray test_", sb.toString().drop(1000))
sb.insertRange(0, CharArray(10000) { '@' }, 1000, 9000)
assertTrue(sb.toString().take(8000).all { it == '@' })
}
}