     (println "\t" "." (pr-str "github.com/hraberg/cljs.go/cljs/core"))
     (println ")")))
 
+(defn test-comment [code ast]
+  (println "/*")
+  (clojure.pprint/pprint code)
+  (println)
+  (clojure.pprint/pprint ast)
+  (println"*/"))
+
 (defn testify [test & assertions]
   (with-out-str
     (printf "func Test_%s(t *testing.T) {\n" (name test))

            :let [ast (-> [actual] (cljs->ast (assoc (cljs.analyzer/empty-env) :context :expr)))]]
      (when setup
        (printf "{\n")
        (printf "/*\n")
        (printf "%s\n" (with-out-str (clojure.pprint/pprint setup)))
        (printf " */\n")
        (printf "\t%s\n" (-> [setup] cljs->ast ast->go)))
      (printf "/*\n")
      (printf "%s\n" (with-out-str (clojure.pprint/pprint actual)))
      (printf "%s\n" (with-out-str (clojure.pprint/pprint (first ast))))
      (printf " */\n")
      (printf "\tassert.Equal(t%s, %s%s)\n"
              (if (nil? expected) "" (str ", \n" expected))
              (str "\n" (ast->go ast))

              #uuid "15c52219-a8fd-4771-87e2-42ee33b79bca"]
             ["&js.RegExp{Pattern: `x`, Flags: ``}" #"x"]
             ["&js.RegExp{Pattern: ``, Flags: ``}" #""]
             ["&CljsCoreSymbol{Ns: nil, Name: `x`, Str: `x`, Hash: float64(-555367584), Meta: nil}"
              ''x]
             ["&CljsCoreSymbol{Ns: `user`, Name: `x`, Str: `user/x`, Hash: float64(-568535109), Meta: nil}"
              ''user/x]
             ["&CljsCoreKeyword{Ns: nil, Name: `x`, Fqn: `x`, Hash: float64(2099068185)}"
              :x]
             ["&CljsCoreKeyword{Ns: `user`, Name: `x`, Fqn: `user/x`, Hash: float64(2085900660)}"
              :user/x])]
   (emit-test "go_test" "constants_test")))
