aboutsummaryrefslogtreecommitdiff
path: root/dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/text.kt
blob: ce0ebd9df0a993922c7275661d3aa82d77e7554b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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
  }
}