aboutsummaryrefslogtreecommitdiff
path: root/dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/text.kt
diff options
context:
space:
mode:
Diffstat (limited to 'dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/text.kt')
-rw-r--r--dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/text.kt24
1 files changed, 24 insertions, 0 deletions
diff --git a/dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/text.kt b/dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/text.kt
new file mode 100644
index 00000000..ce0ebd9d
--- /dev/null
+++ b/dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/text.kt
@@ -0,0 +1,24 @@
+package org.jetbrains.dokka.dokkatoo.utils
+
+/** Replace all newlines with `\n`, so the String can be used in assertions cross-platform */
+fun String.invariantNewlines(): String =
+ lines().joinToString("\n")
+
+fun Pair<String, String>.sideBySide(
+ buffer: String = " ",
+): String {
+ val (left, right) = this
+
+ val leftLines = left.lines()
+ val rightLines = right.lines()
+
+ val maxLeftWidth = leftLines.maxOf { it.length }
+
+ return (0..maxOf(leftLines.size, rightLines.size)).joinToString("\n") { i ->
+
+ val leftLine = (leftLines.getOrNull(i) ?: "").padEnd(maxLeftWidth, ' ')
+ val rightLine = rightLines.getOrNull(i) ?: ""
+
+ leftLine + buffer + rightLine
+ }
+}