
commonMain.io.kotest.assertions.eq.RegexEq.kt Maven / Gradle / Ivy
package io.kotest.assertions.eq
import io.kotest.assertions.failure
import io.kotest.assertions.show.Printed
import io.kotest.assertions.show.show
/**
* An implementation of [Eq] for comparing [Regex]s.
*/
internal object RegexEq : Eq {
override fun equals(actual: Regex, expected: Regex): Throwable? {
return patternsAreNotEqual(actual, expected) ?: optionsAreNotEqual(actual, expected)
}
}
private fun patternsAreNotEqual(actual: Regex, expected: Regex): Throwable? {
return if (actual.pattern == expected.pattern) null else failure(
Printed(expected.pattern),
Printed(actual.pattern)
)
}
private fun optionsAreNotEqual(actual: Regex, expected: Regex): Throwable? {
return if (actual.options == expected.options) null else failure(
expected.options.show(),
actual.options.show()
)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy