[evaluation-plugin] LME-66 Revert config changes and make chunkSize optional

GitOrigin-RevId: b6cca9b6089e9f27a960bdff0270bb4d8948247f
This commit is contained in:
Roman Vasiliev
2024-10-17 16:10:04 +00:00
committed by intellij-monorepo-bot
parent e16f6da212
commit 2d0c04f967
7 changed files with 14 additions and 37 deletions
@@ -16,8 +16,7 @@ import java.nio.file.Paths
* @property outputDir The output directory for the evaluation results.
* @property strategy The evaluation strategy used.
* @property actions The configuration for actions generation step.
* @property csvDataset Dataset configuration for CSV file.
* @property conflictDataset Dataset configuration for conflict resolution evaluations.
* @property fileDataset Dataset configuration for standalone setups
* @property interpret The configuration for actions interpretation step.
* @property reorder The configuration for element reordering step.
* @property reports The configuration for report generation step.
@@ -26,8 +25,7 @@ data class Config private constructor(
val outputDir: String,
val strategy: EvaluationStrategy,
val actions: ActionsGeneration?,
val csvDataset: FileDataset?,
val conflictDataset: ConflictDataset?,
val fileDataset: FileDataset?,
val interpret: ActionsInterpretation,
val reorder: ReorderElements,
val reports: ReportGeneration
@@ -75,11 +73,7 @@ data class Config private constructor(
*/
data class FileDataset internal constructor(
val url: String,
val chunkSize: Int,
)
data class ConflictDataset internal constructor(
val url: String
val chunkSize: Int?,
)
/**
@@ -141,7 +135,6 @@ data class Config private constructor(
class Builder internal constructor() {
var actions: ActionsGeneration? = null
var fileDataset: FileDataset? = null
var conflictDataset: ConflictDataset? = null
var outputDir: String? = null
var strategy: EvaluationStrategy = EvaluationStrategy.defaultStrategy
@@ -168,8 +161,7 @@ data class Config private constructor(
constructor(config: Config) : this() {
actions = config.actions
fileDataset = config.csvDataset
conflictDataset = config.conflictDataset
fileDataset = config.fileDataset
outputDir = config.outputDir
strategy = config.strategy
saveLogs = config.interpret.saveLogs
@@ -214,7 +206,6 @@ data class Config private constructor(
strategy,
actions,
fileDataset,
conflictDataset,
ActionsInterpretation(
experimentGroup,
sessionsLimit,
@@ -63,8 +63,7 @@ object ConfigFactory {
map.getIfExists<String>("language"),
this
)
deserializeFileDataset(map.getIfExists("csvDataset"), this)
deserializeConflictDataset(map.getIfExists("conflictDataset"), this)
deserializeFileDataset(map.getIfExists("fileDataset"), this)
deserializeStrategy(map.getIfExists("strategy"), strategySerializer, actions?.language, this)
deserializeActionsInterpretation(map.getIfExists("interpret"), this)
@@ -120,20 +119,7 @@ object ConfigFactory {
builder.fileDataset = Config.FileDataset(
map.getAs("url"),
map.getAs<Double>("chunkSize").toInt(),
)
}
private fun deserializeConflictDataset(
map: Map<String, Any>?,
builder: Config.Builder
) {
if (map == null) {
return
}
builder.conflictDataset = Config.ConflictDataset(
map.getAs("url")
map.getIfExists<Double?>("chunkSize")?.toInt(),
)
}
@@ -1,7 +1,7 @@
{
"outputDir": "ml-eval-conflict-resolution-output",
"strategy": {},
"conflictDataset": {
"fileDataset": {
"url": "existing:conflicts"
},
"interpret": {
@@ -1,7 +1,7 @@
{
"outputDir": "ml-eval-standalone-example-output",
"strategy": {},
"csvDataset": {
"fileDataset": {
"url": "./latin_letters.csv",
"chunkSize": 10
},
@@ -13,7 +13,7 @@ class ConflictResolutionFeature : StandaloneFeature<ConflictResolutionStrategy>(
override fun getStrategySerializer(): StrategySerializer<ConflictResolutionStrategy> = ConflictResolutionStrategy.Serializer()
override fun prepareEnvironment(config: Config): SimpleFileEnvironment = ConflictEnvironment(
DatasetRef.parse(config.conflictDataset!!.url),
DatasetRef.parse(config.fileDataset!!.url),
TheirConflictResolver()
)
@@ -23,10 +23,10 @@ class StandaloneExampleFeature : StandaloneFeature<DatasetStrategy>("standalone-
}
override fun prepareEnvironment(config: Config): EvaluationEnvironment {
val fileDataset = config.csvDataset ?: throw IllegalStateException("Required dataset config")
val fileDataset = config.fileDataset ?: throw IllegalStateException("Required dataset config")
return CsvEnvironment(
datasetRef = DatasetRef.parse(fileDataset.url),
chunkSize = fileDataset.chunkSize,
chunkSize = fileDataset.chunkSize ?: 1,
targetField = "Type",
featureInvoker = StandaloneExampleInvoker(),
)
@@ -91,15 +91,15 @@ class ConfigFactoryTest {
{
"outputDir": "test_outputDir",
"strategy": {},
"csvDataset": {
"fileDataset": {
"url": "test_url",
"chunkSize": 300
}
}
""".trimIndent()
).also {
assertEquals("test_url", it.csvDataset?.url)
assertEquals(300, it.csvDataset?.chunkSize)
assertEquals("test_url", it.fileDataset?.url)
assertEquals(300, it.fileDataset?.chunkSize)
}
}