@@ -15,23 +15,18 @@ class RepairServer {
1515
1616 fun handleRequest (template : String , cfg : String ): String {
1717 val cfgHash = cfg.hashCode()
18- val cfg = if (cfgHash in map) map[cfgHash] else {
19- cfg.trimIndent().lines().map { it.split(" -> " ).let { Pair (it[0 ], it[1 ].split(" " )) } }
20- .toSet().freeze()
21- }!!
18+ val cfg = if (cfgHash in map) map[cfgHash]!!
19+ else cfg.trimIndent().lines().map { it.split(" -> " ).let { it[0 ] to it[1 ].split(" " ) } }.toSet().freeze()
2220
2321 val tks = template.tokenizeByWhitespace()
24- return (if (tks.any { it == " _" })
25- cfg.startPTree(tks)?.sampleStrWithoutReplacement()
26- else
27- initiateSerialRepair(tks,cfg)
28- )?.take(1000000 )?.joinToString(" \n " )? : " null"
22+ return (if (tks.any { it == " _" }) cfg.startPTree(tks)?.sampleStrWithoutReplacement()
23+ else initiateSerialRepair(tks, cfg))?.take(1000000 )?.joinToString(" \n " )? : " null"
2924 }
3025
3126/*
3227./gradlew jvmTest --tests "ai.hypergraph.kaliningraph.repair.RepairServer.testRepairServer"
3328*/
34- // @Test
29+ @Test
3530 fun testRepairServer () {
3631 val server = HttpServer .create(InetSocketAddress (" 127.0.0.1" , 8088 ), 0 )
3732
@@ -53,7 +48,7 @@ class RepairServer {
5348 val s2 = decodeB64ToUtf8(params[" s2_b64" ])
5449
5550 // Log first 10 code points of each (emoji-safe)
56- println (" RepairServer: s1[0..10]='${firstTen(s1 )} ' | s2[0..10]='${firstTen(s2 )} '" )
51+ println (" RepairServer: s1[0..10]='${s1.take( 10 )} ' | s2[0..10]='${s2.take( 10 )} '" )
5752
5853 // Respond with concatenation of the *decoded* strings
5954 val resp = handleRequest(s1, s2)
@@ -87,24 +82,13 @@ class RepairServer {
8782 if (s.isEmpty()) emptyMap() else buildMap {
8883 s.split(" &" ).forEach { kv ->
8984 val i = kv.indexOf(' =' )
90- if (i >= 0 ) put(urlDecode(kv.substring( 0 , i)), urlDecode(kv.substring(i + 1 )))
85+ if (i >= 0 ) put(urlDecode(kv.take( i)), urlDecode(kv.substring(i + 1 )))
9186 else if (kv.isNotEmpty()) put(urlDecode(kv), " " )
9287 }
9388 }
9489
9590 private fun urlDecode (x : String ) = URLDecoder .decode(x, StandardCharsets .UTF_8 )
9691
9792 private fun decodeB64ToUtf8 (b64 : String? ): String =
98- try {
99- if (b64.isNullOrEmpty()) " "
100- else String (Base64 .getDecoder().decode(b64), StandardCharsets .UTF_8 )
101- } catch (_: IllegalArgumentException ) {
102- " " // invalid Base64 -> treat as empty
103- }
104-
105- private fun firstTen (s : String ): String {
106- val want = min(10 , s.codePointCount(0 , s.length))
107- val endIdx = s.offsetByCodePoints(0 , want)
108- return s.take(endIdx)
109- }
93+ if (b64.isNullOrEmpty()) " " else String (Base64 .getDecoder().decode(b64), StandardCharsets .UTF_8 )
11094}
0 commit comments