All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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