# Clojure/Nim — Test Suite Compliance Plan ## Current Status: 230/233 (98.7%) | Component | Pass | Total | % | |---|---|---|---| | clojure.string | 8 | 8 | 100% | | clojure.core | 222 | 225 | 98.7% | | **Total** | **230** | **233** | **98.7%** | ## Unit Tests: 78/80 pass (97.5%) - `emit symbol` — returns `cljSymbol(...)` instead of raw name - `emit mangled symbol` — same issue ## 3 Remaining Compliance Failures | # | Test | Error | Root Cause | |---|---|---|---| | 1 | `not_eq` | `undeclared 'eq_SLASH_tests'` | Cross-namespace: `eq/tests` fn from `clojure.core-test.eq` not loaded | | 2 | `add_watch` | `undeclared 'testvar_a'` | `(def testvar-a 0)` inside deftest body — Nim requires var decl before use in closures | | 3 | `remove_watch` | `undeclared 'watchable'` | Same — `(def watchable 0)` inside deftest body, referenced in closures | All 3 require deeper architectural changes: - Multi-file compilation or inline required namespaces - Top-level def hoisting across closure boundaries