Compiling Kotlin test...
✅ Found ONNX runtime: lib/onnx/onnxruntime-android-1.20.0-runtime.jar
✅ Found ONNX API: lib/onnx/onnxruntime-android-1.20.0-api.jar
✅ Found native libs: lib/onnx/native/arm64-v8a

Compiling TestOnnxPrediction.kt...
Failed to load native library:jansi-2.4.0-845ee5465c621729-libjansi.so. osinfo: Linux/arm64
java.lang.UnsatisfiedLinkError: /data/data/com.termux/files/usr/tmp/jansi-2.4.0-845ee5465c621729-libjansi.so: dlopen failed: library "libc.so.6" not found: needed by /data/data/com.termux/files/usr/tmp/jansi-2.4.0-845ee5465c621729-libjansi.so in namespace (default)
TestOnnxPrediction.kt:192:43: warning: unchecked cast of 'Any!' to 'Array<Array<FloatArray>>'.
            val logits = (result[0].value as Array<Array<FloatArray>>)[0]
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
✅ Compilation successful: TestOnnxPrediction.jar

Running test...
======================================================================
Kotlin CLI Test - 10 Valid Swipes (No Negative Coordinates)
======================================================================

✅ Loading ONNX models...
✅ Encoder loaded: assets/models/swipe_model_character_quant.onnx
✅ Decoder loaded: assets/models/swipe_decoder_character_quant.onnx

Encoder inputs:
   trajectory_features
   nearest_keys
   src_mask

✅ Models loaded successfully

✅ Loading test data from test_swipes_10.jsonl...
✅ Loaded 10 test swipes

======================================================================
Running Full Prediction Tests (Encoder + Decoder)
======================================================================
🔬 CLI Trajectory tensor hex dump (first 30 floats):
   [ 0] 0.138015 (0x3e0d53ae)
   [ 1] 0.132760 (0x3e07f254)
   [ 2] 0.000000 (0x00000000)
   [ 3] 0.000000 (0x00000000)
   [ 4] 0.000000 (0x00000000)
   [ 5] 0.000000 (0x00000000)
   [ 6] 0.157385 (0x3e212988)
   [ 7] 0.136348 (0x3e0b9eef)
   [ 8] 0.019370 (0x3c9eaed0)
   [ 9] 0.003588 (0x3b6b26c0)
   [10] 0.019370 (0x3c9eaed0)
   [11] 0.003588 (0x3b6b26c0)
   [12] 0.176755 (0x3e34ff61)
   [13] 0.132760 (0x3e07f254)
   [14] 0.019370 (0x3c9eaec8)
   [15] -0.003588 (0xbb6b26c0)
   [16] -0.000000 (0xb2800000)
   [17] -0.007176 (0xbbeb26c0)
   [18] 0.210654 (0x3e57b59e)
   [19] 0.114820 (0x3deb269f)
   [20] 0.033898 (0x3d0ad8f4)
   [21] -0.017941 (0xbc92f824)
   [22] 0.014528 (0x3c6e0640)
   [23] -0.014352 (0xbc6b2698)
   [24] 0.249395 (0x3e7f6151)
   [25] 0.107644 (0x3ddc7435)
   [26] 0.038741 (0x3d1eaecc)
   [27] -0.007176 (0xbbeb26a0)
   [28] 0.004843 (0x3b9eaec0)
   [29] 0.010764 (0x3c305cf8)
🔬 CLI Nearest keys tensor hex dump (first 15 longs):
   [ 0] 26 (0x000000000000001a)
   [ 1] 26 (0x000000000000001a)
   [ 2] 26 (0x000000000000001a)
   [ 3] 8 (0x0000000000000008)
   [ 4] 8 (0x0000000000000008)
   [ 5] 8 (0x0000000000000008)
   [ 6] 21 (0x0000000000000015)
   [ 7] 21 (0x0000000000000015)
   [ 8] 23 (0x0000000000000017)
   [ 9] 23 (0x0000000000000017)
   [10] 23 (0x0000000000000017)
   [11] 28 (0x000000000000001c)
   [12] 11 (0x000000000000000b)
   [13] 11 (0x000000000000000b)
   [14] 11 (0x000000000000000b)
  [1/10] Target: 'what      ' → Predicted: 'what      ' ✅
🔬 CLI Trajectory tensor hex dump (first 30 floats):
   [ 0] 0.463889 (0x3eed82d8)
   [ 1] 0.403571 (0x3ecea0ea)
   [ 2] 0.000000 (0x00000000)
   [ 3] 0.000000 (0x00000000)
   [ 4] 0.000000 (0x00000000)
   [ 5] 0.000000 (0x00000000)
   [ 6] 0.475000 (0x3ef33333)
   [ 7] 0.400000 (0x3ecccccd)
   [ 8] 0.011111 (0x3c360b60)
   [ 9] -0.003571 (0xbb6a0e80)
   [10] 0.011111 (0x3c360b60)
   [11] -0.003571 (0xbb6a0e80)
   [12] 0.488889 (0x3efa4fa5)
   [13] 0.382143 (0x3ec3a83b)
   [14] 0.013889 (0x3c638e40)
   [15] -0.017857 (0xbc924920)
   [16] 0.002778 (0x3b360b80)
   [17] -0.014286 (0xbc6a0ea0)
   [18] 0.505556 (0x3f016c17)
   [19] 0.357143 (0x3eb6db6e)
   [20] 0.016667 (0x3c888890)
   [21] -0.025000 (0xbcccccd0)
   [22] 0.002778 (0x3b360b80)
   [23] -0.007143 (0xbbea0ec0)
   [24] 0.522222 (0x3f05b05b)
   [25] 0.332143 (0x3eaa0ea1)
   [26] 0.016667 (0x3c888880)
   [27] -0.025000 (0xbcccccd0)
   [28] -0.000000 (0xb3000000)
   [29] 0.000000 (0x00000000)
🔬 CLI Nearest keys tensor hex dump (first 15 longs):
   [ 0] 10 (0x000000000000000a)
   [ 1] 10 (0x000000000000000a)
   [ 2] 10 (0x000000000000000a)
   [ 3] 10 (0x000000000000000a)
   [ 4] 10 (0x000000000000000a)
   [ 5] 10 (0x000000000000000a)
   [ 6] 11 (0x000000000000000b)
   [ 7] 11 (0x000000000000000b)
   [ 8] 11 (0x000000000000000b)
   [ 9] 28 (0x000000000000001c)
   [10] 28 (0x000000000000001c)
   [11] 24 (0x0000000000000018)
   [12] 24 (0x0000000000000018)
   [13] 24 (0x0000000000000018)
   [14] 24 (0x0000000000000018)
  [2/10] Target: 'boolean   ' → Predicted: 'guilwah   ' ❌
🔬 CLI Trajectory tensor hex dump (first 30 floats):
   [ 0] 0.691667 (0x3f311111)
   [ 1] 0.621429 (0x3f1f15f1)
   [ 2] 0.000000 (0x00000000)
   [ 3] 0.000000 (0x00000000)
   [ 4] 0.000000 (0x00000000)
   [ 5] 0.000000 (0x00000000)
   [ 6] 0.694444 (0x3f31c71c)
   [ 7] 0.614286 (0x3f1d41d4)
   [ 8] 0.002778 (0x3b360b00)
   [ 9] -0.007143 (0xbbea0e80)
   [10] 0.002778 (0x3b360b00)
   [11] -0.007143 (0xbbea0e80)
   [12] 0.705556 (0x3f349f4a)
   [13] 0.596429 (0x3f18af8b)
   [14] 0.011111 (0x3c360b80)
   [15] -0.017857 (0xbc924920)
   [16] 0.008333 (0x3c0888c0)
   [17] -0.010714 (0xbc2f8b00)
   [18] 0.713889 (0x3f36c16c)
   [19] 0.585714 (0x3f15f15f)
   [20] 0.008333 (0x3c088880)
   [21] -0.010714 (0xbc2f8b00)
   [22] -0.002778 (0xbb360c00)
   [23] 0.007143 (0x3bea0e80)
   [24] 0.722222 (0x3f38e38e)
   [25] 0.571429 (0x3f124925)
   [26] 0.008333 (0x3c088880)
   [27] -0.014286 (0xbc6a0e80)
   [28] 0.000000 (0x00000000)
   [29] -0.003571 (0xbb6a0e00)
🔬 CLI Nearest keys tensor hex dump (first 15 longs):
   [ 0] 17 (0x0000000000000011)
   [ 1] 17 (0x0000000000000011)
   [ 2] 16 (0x0000000000000010)
   [ 3] 16 (0x0000000000000010)
   [ 4] 16 (0x0000000000000010)
   [ 5] 16 (0x0000000000000010)
   [ 6] 16 (0x0000000000000010)
   [ 7] 16 (0x0000000000000010)
   [ 8] 16 (0x0000000000000010)
   [ 9] 14 (0x000000000000000e)
   [10] 14 (0x000000000000000e)
   [11] 14 (0x000000000000000e)
   [12] 14 (0x000000000000000e)
   [13] 14 (0x000000000000000e)
   [14] 14 (0x000000000000000e)
  [3/10] Target: 'not       ' → Predicted: 'not       ' ✅
🔬 CLI Trajectory tensor hex dump (first 30 floats):
   [ 0] 0.408207 (0x3ed1008e)
   [ 1] 0.554715 (0x3f0e01d2)
   [ 2] 0.000000 (0x00000000)
   [ 3] 0.000000 (0x00000000)
   [ 4] 0.000000 (0x00000000)
   [ 5] 0.000000 (0x00000000)
   [ 6] 0.408207 (0x3ed1008e)
   [ 7] 0.554715 (0x3f0e01d2)
   [ 8] 0.000000 (0x00000000)
   [ 9] 0.000000 (0x00000000)
   [10] 0.000000 (0x00000000)
   [11] 0.000000 (0x00000000)
   [12] 0.408207 (0x3ed1008e)
   [13] 0.554715 (0x3f0e01d2)
   [14] 0.000000 (0x00000000)
   [15] 0.000000 (0x00000000)
   [16] 0.000000 (0x00000000)
   [17] 0.000000 (0x00000000)
   [18] 0.408207 (0x3ed1008e)
   [19] 0.554715 (0x3f0e01d2)
   [20] 0.000000 (0x00000000)
   [21] 0.000000 (0x00000000)
   [22] 0.000000 (0x00000000)
   [23] 0.000000 (0x00000000)
   [24] 0.412527 (0x3ed336bd)
   [25] 0.543785 (0x3f0b357d)
   [26] 0.004320 (0x3b8d8bc0)
   [27] -0.010930 (0xbc331540)
   [28] 0.004320 (0x3b8d8bc0)
   [29] -0.010930 (0xbc331540)
🔬 CLI Nearest keys tensor hex dump (first 15 longs):
   [ 0] 25 (0x0000000000000019)
   [ 1] 25 (0x0000000000000019)
   [ 2] 25 (0x0000000000000019)
   [ 3] 25 (0x0000000000000019)
   [ 4] 25 (0x0000000000000019)
   [ 5] 25 (0x0000000000000019)
   [ 6] 9 (0x0000000000000009)
   [ 7] 10 (0x000000000000000a)
   [ 8] 10 (0x000000000000000a)
   [ 9] 10 (0x000000000000000a)
   [10] 10 (0x000000000000000a)
   [11] 11 (0x000000000000000b)
   [12] 11 (0x000000000000000b)
   [13] 11 (0x000000000000000b)
   [14] 11 (0x000000000000000b)
  [4/10] Target: 'consistent' → Predicted: 'consistency' ❌
🔬 CLI Trajectory tensor hex dump (first 30 floats):
   [ 0] 0.202778 (0x3e4fa4fa)
   [ 1] 0.128571 (0x3e03a83b)
   [ 2] 0.000000 (0x00000000)
   [ 3] 0.000000 (0x00000000)
   [ 4] 0.000000 (0x00000000)
   [ 5] 0.000000 (0x00000000)
   [ 6] 0.177778 (0x3e360b61)
   [ 7] 0.114286 (0x3dea0ea1)
   [ 8] -0.025000 (0xbcccccc8)
   [ 9] -0.014286 (0xbc6a0ea8)
   [10] -0.025000 (0xbcccccc8)
   [11] -0.014286 (0xbc6a0ea8)
   [12] 0.180556 (0x3e38e38e)
   [13] 0.114286 (0x3dea0ea1)
   [14] 0.002778 (0x3b360b40)
   [15] 0.000000 (0x00000000)
   [16] 0.027778 (0x3ce38e30)
   [17] 0.014286 (0x3c6a0ea8)
   [18] 0.202778 (0x3e4fa4fa)
   [19] 0.121429 (0x3df8af8b)
   [20] 0.022222 (0x3cb60b60)
   [21] 0.007143 (0x3bea0ea0)
   [22] 0.019444 (0x3c9f49f8)
   [23] 0.007143 (0x3bea0ea0)
   [24] 0.233333 (0x3e6eeeef)
   [25] 0.135714 (0x3e0af8b0)
   [26] 0.030556 (0x3cfa4fa8)
   [27] 0.014286 (0x3c6a0ea8)
   [28] 0.008333 (0x3c088890)
   [29] 0.007143 (0x3bea0eb0)
🔬 CLI Nearest keys tensor hex dump (first 15 longs):
   [ 0] 8 (0x0000000000000008)
   [ 1] 26 (0x000000000000001a)
   [ 2] 26 (0x000000000000001a)
   [ 3] 8 (0x0000000000000008)
   [ 4] 8 (0x0000000000000008)
   [ 5] 8 (0x0000000000000008)
   [ 6] 21 (0x0000000000000015)
   [ 7] 21 (0x0000000000000015)
   [ 8] 23 (0x0000000000000017)
   [ 9] 10 (0x000000000000000a)
   [10] 10 (0x000000000000000a)
   [11] 11 (0x000000000000000b)
   [12] 11 (0x000000000000000b)
   [13] 11 (0x000000000000000b)
   [14] 11 (0x000000000000000b)
  [5/10] Target: 'ensure    ' → Predicted: 'ensire    ' ❌
🔬 CLI Trajectory tensor hex dump (first 30 floats):
   [ 0] 0.355556 (0x3eb60b61)
   [ 1] 0.350921 (0x3eb3abf0)
   [ 2] 0.000000 (0x00000000)
   [ 3] 0.000000 (0x00000000)
   [ 4] 0.000000 (0x00000000)
   [ 5] 0.000000 (0x00000000)
   [ 6] 0.355556 (0x3eb60b61)
   [ 7] 0.350921 (0x3eb3abf0)
   [ 8] 0.000000 (0x00000000)
   [ 9] 0.000000 (0x00000000)
   [10] 0.000000 (0x00000000)
   [11] 0.000000 (0x00000000)
   [12] 0.355556 (0x3eb60b61)
   [13] 0.350921 (0x3eb3abf0)
   [14] 0.000000 (0x00000000)
   [15] 0.000000 (0x00000000)
   [16] 0.000000 (0x00000000)
   [17] 0.000000 (0x00000000)
   [18] 0.358333 (0x3eb77777)
   [19] 0.343972 (0x3eb01d20)
   [20] 0.002778 (0x3b360b00)
   [21] -0.006949 (0xbbe3b400)
   [22] 0.002778 (0x3b360b00)
   [23] -0.006949 (0xbbe3b400)
   [24] 0.363889 (0x3eba4fa5)
   [25] 0.312702 (0x3ea01a7b)
   [26] 0.005556 (0x3bb60b80)
   [27] -0.031270 (0xbd001528)
   [28] 0.002778 (0x3b360c00)
   [29] -0.024321 (0xbcc73d50)
🔬 CLI Nearest keys tensor hex dump (first 15 longs):
   [ 0] 9 (0x0000000000000009)
   [ 1] 9 (0x0000000000000009)
   [ 2] 9 (0x0000000000000009)
   [ 3] 9 (0x0000000000000009)
   [ 4] 9 (0x0000000000000009)
   [ 5] 9 (0x0000000000000009)
   [ 6] 21 (0x0000000000000015)
   [ 7] 23 (0x0000000000000017)
   [ 8] 23 (0x0000000000000017)
   [ 9] 23 (0x0000000000000017)
   [10] 23 (0x0000000000000017)
   [11] 28 (0x000000000000001c)
   [12] 28 (0x000000000000001c)
   [13] 24 (0x0000000000000018)
   [14] 24 (0x0000000000000018)
  [6/10] Target: 'drinks    ' → Predicted: 'fronks    ' ❌
🔬 CLI Trajectory tensor hex dump (first 30 floats):
   [ 0] 0.583333 (0x3f155555)
   [ 1] 0.482143 (0x3ef6db6e)
   [ 2] 0.000000 (0x00000000)
   [ 3] 0.000000 (0x00000000)
   [ 4] 0.000000 (0x00000000)
   [ 5] 0.000000 (0x00000000)
   [ 6] 0.605556 (0x3f1b05b0)
   [ 7] 0.496429 (0x3efe2be3)
   [ 8] 0.022222 (0x3cb60b60)
   [ 9] 0.014286 (0x3c6a0ea0)
   [10] 0.022222 (0x3cb60b60)
   [11] 0.014286 (0x3c6a0ea0)
   [12] 0.608333 (0x3f1bbbbc)
   [13] 0.492857 (0x3efc57c5)
   [14] 0.002778 (0x3b360c00)
   [15] -0.003571 (0xbb6a0f00)
   [16] -0.019444 (0xbc9f49e0)
   [17] -0.017857 (0xbc924930)
   [18] 0.602778 (0x3f1a4fa5)
   [19] 0.482143 (0x3ef6db6e)
   [20] -0.005556 (0xbbb60b80)
   [21] -0.010714 (0xbc2f8ae0)
   [22] -0.008333 (0xbc0888c0)
   [23] -0.007143 (0xbbea0e40)
   [24] 0.605556 (0x3f1b05b0)
   [25] 0.471429 (0x3ef15f16)
   [26] 0.002778 (0x3b360b00)
   [27] -0.010714 (0xbc2f8b00)
   [28] 0.008333 (0x3c088880)
   [29] -0.000000 (0xb3000000)
🔬 CLI Nearest keys tensor hex dump (first 15 longs):
   [ 0] 11 (0x000000000000000b)
   [ 1] 11 (0x000000000000000b)
   [ 2] 11 (0x000000000000000b)
   [ 3] 11 (0x000000000000000b)
   [ 4] 11 (0x000000000000000b)
   [ 5] 11 (0x000000000000000b)
   [ 6] 11 (0x000000000000000b)
   [ 7] 11 (0x000000000000000b)
   [ 8] 11 (0x000000000000000b)
   [ 9] 11 (0x000000000000000b)
   [10] 11 (0x000000000000000b)
   [11] 11 (0x000000000000000b)
   [12] 11 (0x000000000000000b)
   [13] 10 (0x000000000000000a)
   [14] 10 (0x000000000000000a)
  [7/10] Target: 'brazil    ' → Predicted: 'heasol    ' ❌
🔬 CLI Trajectory tensor hex dump (first 30 floats):
   [ 0] 0.196126 (0x3e48d53a)
   [ 1] 0.369591 (0x3ebd3b07)
   [ 2] 0.000000 (0x00000000)
   [ 3] 0.000000 (0x00000000)
   [ 4] 0.000000 (0x00000000)
   [ 5] 0.000000 (0x00000000)
   [ 6] 0.191283 (0x3e43dfc4)
   [ 7] 0.344102 (0x3eb02e22)
   [ 8] -0.004843 (0xbb9eaec0)
   [ 9] -0.025489 (0xbcd0ce50)
   [10] -0.004843 (0xbb9eaec0)
   [11] -0.025489 (0xbcd0ce50)
   [12] 0.193705 (0x3e465a80)
   [13] 0.315427 (0x3ea17f9f)
   [14] 0.002421 (0x3b1eaf00)
   [15] -0.028675 (0xbceae830)
   [16] 0.007264 (0x3bee0640)
   [17] -0.003186 (0xbb50cf00)
   [18] 0.203390 (0x3e50456c)
   [19] 0.267635 (0x3e890770)
   [20] 0.009685 (0x3c1eaec0)
   [21] -0.047792 (0xbd43c178)
   [22] 0.007264 (0x3bee0600)
   [23] -0.019117 (0xbc9c9ac0)
   [24] 0.217918 (0x3e5f25d0)
   [25] 0.203912 (0x3e50ce61)
   [26] 0.014528 (0x3c6e0640)
   [27] -0.063723 (0xbd8280fe)
   [28] 0.004843 (0x3b9eaf00)
   [29] -0.015931 (0xbc828108)
🔬 CLI Nearest keys tensor hex dump (first 15 longs):
   [ 0] 22 (0x0000000000000016)
   [ 1] 22 (0x0000000000000016)
   [ 2] 22 (0x0000000000000016)
   [ 3] 22 (0x0000000000000016)
   [ 4] 8 (0x0000000000000008)
   [ 5] 8 (0x0000000000000008)
   [ 6] 8 (0x0000000000000008)
   [ 7] 8 (0x0000000000000008)
   [ 8] 8 (0x0000000000000008)
   [ 9] 8 (0x0000000000000008)
   [10] 8 (0x0000000000000008)
   [11] 8 (0x0000000000000008)
   [12] 8 (0x0000000000000008)
   [13] 8 (0x0000000000000008)
   [14] 21 (0x0000000000000015)
  [8/10] Target: 'setting   ' → Predicted: 'setting   ' ✅
🔬 CLI Trajectory tensor hex dump (first 30 floats):
   [ 0] 0.841667 (0x3f577777)
   [ 1] 0.496429 (0x3efe2be3)
   [ 2] 0.000000 (0x00000000)
   [ 3] 0.000000 (0x00000000)
   [ 4] 0.000000 (0x00000000)
   [ 5] 0.000000 (0x00000000)
   [ 6] 0.861111 (0x3f5c71c7)
   [ 7] 0.510714 (0x3f02be2c)
   [ 8] 0.019444 (0x3c9f4a00)
   [ 9] 0.014286 (0x3c6a0ea0)
   [10] 0.019444 (0x3c9f4a00)
   [11] 0.014286 (0x3c6a0ea0)
   [12] 0.861111 (0x3f5c71c7)
   [13] 0.510714 (0x3f02be2c)
   [14] 0.000000 (0x00000000)
   [15] 0.000000 (0x00000000)
   [16] -0.019444 (0xbc9f4a00)
   [17] -0.014286 (0xbc6a0ea0)
   [18] 0.852778 (0x3f5a4fa5)
   [19] 0.503571 (0x3f00ea0f)
   [20] -0.008333 (0xbc088880)
   [21] -0.007143 (0xbbea0e80)
   [22] -0.008333 (0xbc088880)
   [23] -0.007143 (0xbbea0e80)
   [24] 0.841667 (0x3f577777)
   [25] 0.496429 (0x3efe2be3)
   [26] -0.011111 (0xbc360b80)
   [27] -0.007143 (0xbbea0ec0)
   [28] -0.002778 (0xbb360c00)
   [29] -0.000000 (0xb3000000)
🔬 CLI Nearest keys tensor hex dump (first 15 longs):
   [ 0] 14 (0x000000000000000e)
   [ 1] 16 (0x0000000000000010)
   [ 2] 16 (0x0000000000000010)
   [ 3] 16 (0x0000000000000010)
   [ 4] 14 (0x000000000000000e)
   [ 5] 14 (0x000000000000000e)
   [ 6] 14 (0x000000000000000e)
   [ 7] 14 (0x000000000000000e)
   [ 8] 14 (0x000000000000000e)
   [ 9] 14 (0x000000000000000e)
   [10] 14 (0x000000000000000e)
   [11] 14 (0x000000000000000e)
   [12] 14 (0x000000000000000e)
   [13] 14 (0x000000000000000e)
   [14] 14 (0x000000000000000e)
  [9/10] Target: 'min       ' → Predicted: 'mig       ' ❌
🔬 CLI Trajectory tensor hex dump (first 30 floats):
   [ 0] 0.400000 (0x3ecccccd)
   [ 1] 0.467730 (0x3eef7a56)
   [ 2] 0.000000 (0x00000000)
   [ 3] 0.000000 (0x00000000)
   [ 4] 0.000000 (0x00000000)
   [ 5] 0.000000 (0x00000000)
   [ 6] 0.400000 (0x3ecccccd)
   [ 7] 0.467730 (0x3eef7a56)
   [ 8] 0.000000 (0x00000000)
   [ 9] 0.000000 (0x00000000)
   [10] 0.000000 (0x00000000)
   [11] 0.000000 (0x00000000)
   [12] 0.402778 (0x3ece38e4)
   [13] 0.467730 (0x3eef7a56)
   [14] 0.002778 (0x3b360b80)
   [15] 0.000000 (0x00000000)
   [16] 0.002778 (0x3b360b80)
   [17] 0.000000 (0x00000000)
   [18] 0.405556 (0x3ecfa4fa)
   [19] 0.463832 (0x3eed7b73)
   [20] 0.002778 (0x3b360b00)
   [21] -0.003898 (0xbb7f7180)
   [22] -0.000000 (0xb3000000)
   [23] -0.003898 (0xbb7f7180)
   [24] 0.416667 (0x3ed55555)
   [25] 0.452139 (0x3ee77ecb)
   [26] 0.011111 (0x3c360b60)
   [27] -0.011693 (0xbc3f9500)
   [28] 0.008333 (0x3c0888a0)
   [29] -0.007795 (0xbbff7140)
🔬 CLI Nearest keys tensor hex dump (first 15 longs):
   [ 0] 9 (0x0000000000000009)
   [ 1] 9 (0x0000000000000009)
   [ 2] 9 (0x0000000000000009)
   [ 3] 9 (0x0000000000000009)
   [ 4] 9 (0x0000000000000009)
   [ 5] 10 (0x000000000000000a)
   [ 6] 10 (0x000000000000000a)
   [ 7] 11 (0x000000000000000b)
   [ 8] 24 (0x0000000000000018)
   [ 9] 12 (0x000000000000000c)
   [10] 18 (0x0000000000000012)
   [11] 18 (0x0000000000000012)
   [12] 18 (0x0000000000000012)
   [13] 18 (0x0000000000000012)
   [14] 18 (0x0000000000000012)
  [10/10] Target: 'could     ' → Predicted: 'fould     ' ❌

======================================================================
Test Summary
======================================================================
Total tests: 10
Correct predictions: 3
Prediction accuracy: 30.0%
======================================================================

📊 Detailed Results:
   ✅ CORRECT: 'what' → 'what'
   ❌ WRONG: 'boolean' → 'guilwah'
   ✅ CORRECT: 'not' → 'not'
   ❌ WRONG: 'consistent' → 'consistency'
   ❌ WRONG: 'ensure' → 'ensire'
   ❌ WRONG: 'drinks' → 'fronks'
   ❌ WRONG: 'brazil' → 'heasol'
   ✅ CORRECT: 'setting' → 'setting'
   ❌ WRONG: 'min' → 'mig'
   ❌ WRONG: 'could' → 'fould'

✅ PREDICTION TEST COMPLETE
   ✅ Model accepts [batch, 150] nearest_keys (2D)
   ✅ Encoder+decoder pipeline working
   ⚠️  Prediction accuracy: 30.0%
