From 007ac2f893ccfa5ef2781b67d67cb50345c21198 Mon Sep 17 00:00:00 2001 From: raindelight Date: Tue, 27 Jan 2026 01:28:33 +0100 Subject: [PATCH] fix: ycoor parsing problem --- src/main/scala/com/beepboop/app/MainApp.scala | 2 +- .../com/beepboop/app/components/Expression.scala | 2 +- .../beepboop/app/dataprovider/SolutionParser.scala | 11 +++++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/scala/com/beepboop/app/MainApp.scala b/src/main/scala/com/beepboop/app/MainApp.scala index ce280f2..98f23fb 100644 --- a/src/main/scala/com/beepboop/app/MainApp.scala +++ b/src/main/scala/com/beepboop/app/MainApp.scala @@ -103,11 +103,11 @@ object MainApp extends LogTrait { PersistenceManager.performEmergencyBackup(snapshot, config.checkpointFile, config.outputCsv) } })) - val initialExpr = Iterator.continually { ExpressionGenerator.generate(requiredType = BoolType, maxDepth = 2) }.find(_.isDefined).flatten + info("--- Step 3: Starting Optimization Loop ---") val result = searcher.findOptimalModel( diff --git a/src/main/scala/com/beepboop/app/components/Expression.scala b/src/main/scala/com/beepboop/app/components/Expression.scala index 8206b84..47aab77 100644 --- a/src/main/scala/com/beepboop/app/components/Expression.scala +++ b/src/main/scala/com/beepboop/app/components/Expression.scala @@ -1167,7 +1167,7 @@ case class DiffnExpression( true } catch { case e: Exception => - error(e.getMessage) + error(e.getMessage + e.toString) throw e } } diff --git a/src/main/scala/com/beepboop/app/dataprovider/SolutionParser.scala b/src/main/scala/com/beepboop/app/dataprovider/SolutionParser.scala index 2637d01..3a4cec2 100644 --- a/src/main/scala/com/beepboop/app/dataprovider/SolutionParser.scala +++ b/src/main/scala/com/beepboop/app/dataprovider/SolutionParser.scala @@ -32,7 +32,12 @@ object SolutionParser extends LogTrait { val dataTypeOption = schema.get(header).flatMap(Option(_)) val parsedValue = dataTypeOption match { case Some(dataType) => parseValue(valueStr, dataType) - case None => valueStr + case None => + if (valueStr.startsWith("[") && valueStr.endsWith("]")) { + parseComplexArray(valueStr, "unknown") + } else { + parseScalar(valueStr, "unknown") + } } header -> parsedValue }.toMap @@ -156,7 +161,9 @@ object SolutionParser extends LogTrait { scala.util.Try(cleanValue.toInt).getOrElse(cleanValue) } else { - cleanValue + scala.util.Try(cleanValue.toInt) + .orElse(scala.util.Try(cleanValue.toDouble)) + .getOrElse(cleanValue) } } } \ No newline at end of file