[eval-plugin] allow custom expected text processing for metrics

GitOrigin-RevId: 632da8d4521ff69f4327e2948aea04dea9f13b24
This commit is contained in:
Oleg Taratukhin
2024-02-06 20:23:02 +01:00
committed by intellij-monorepo-bot
parent 89427b3ac1
commit 8dbea3f156

View File

@@ -27,7 +27,7 @@ abstract class SimilarityMetric(override val showByDefault: Boolean) : Metric {
var expected = 0.0
for (session in sessions) {
for (lookup in session.lookups) {
val expectedText = session.expectedText.substring(lookup.offset)
val expectedText = computeExpectedText(session, lookup)
val currentExpected = computeExpected(lookup, expectedText)
expected += currentExpected
val similarity = computeSimilarity(lookup, expectedText) ?: 0.0
@@ -40,6 +40,8 @@ abstract class SimilarityMetric(override val showByDefault: Boolean) : Metric {
return matched / expected
}
open fun computeExpectedText(session: Session, lookup: Lookup) = session.expectedText.substring(lookup.offset)
abstract fun computeSimilarity(lookup: Lookup, expectedText: String): Double?
open fun computeExpected(lookup: Lookup, expectedText: String): Double = expectedText.length.toDouble()