From a9ccbf44f717ebf90c00e204610e94c4d3f4df10 Mon Sep 17 00:00:00 2001 From: Jianling Zhong Date: Sun, 26 Jan 2025 22:34:48 -0800 Subject: [PATCH] update remove invalid jank tests remove debug prints --- .../include/cpp/jank/analyze/expr/case.hpp | 1 - .../include/cpp/jank/analyze/expr/if.hpp | 1 - .../src/cpp/jank/codegen/llvm_processor.cpp | 5 - .../jank/form/case/pass-basic-case-tests.jank | 133 +------ .../case/pass-case-in-value-position.jank | 4 +- .../case/pass-complex-dispatching-case.jank | 16 - .../jank/form/case/pass-complex-keys.jank | 80 ---- .../pass-expanded-collection-key-case.jank | 348 ++++++++++-------- .../case/pass-non-constant-case-expr.jank | 30 -- .../jank/form/case/pass-unicode-case.jank | 35 -- 10 files changed, 193 insertions(+), 460 deletions(-) delete mode 100644 compiler+runtime/test/jank/form/case/pass-complex-dispatching-case.jank delete mode 100644 compiler+runtime/test/jank/form/case/pass-complex-keys.jank delete mode 100644 compiler+runtime/test/jank/form/case/pass-non-constant-case-expr.jank delete mode 100644 compiler+runtime/test/jank/form/case/pass-unicode-case.jank diff --git a/compiler+runtime/include/cpp/jank/analyze/expr/case.hpp b/compiler+runtime/include/cpp/jank/analyze/expr/case.hpp index 08e66c42b..050cfb88c 100644 --- a/compiler+runtime/include/cpp/jank/analyze/expr/case.hpp +++ b/compiler+runtime/include/cpp/jank/analyze/expr/case.hpp @@ -32,7 +32,6 @@ namespace jank::analyze::expr void propagate_position(expression_position const pos) { - std::cout << "set case expr position to " << expression_position_str(pos) << "\n"; default_expr->propagate_position(pos); for(auto &expr : exprs) { diff --git a/compiler+runtime/include/cpp/jank/analyze/expr/if.hpp b/compiler+runtime/include/cpp/jank/analyze/expr/if.hpp index bceb39234..dced57971 100644 --- a/compiler+runtime/include/cpp/jank/analyze/expr/if.hpp +++ b/compiler+runtime/include/cpp/jank/analyze/expr/if.hpp @@ -19,7 +19,6 @@ namespace jank::analyze::expr void propagate_position(expression_position const pos) { - std::cout << "set if expr position to" << expression_position_str(pos) << "\n"; position = pos; if(then) { diff --git a/compiler+runtime/src/cpp/jank/codegen/llvm_processor.cpp b/compiler+runtime/src/cpp/jank/codegen/llvm_processor.cpp index b599c07c6..e04e2c20c 100644 --- a/compiler+runtime/src/cpp/jank/codegen/llvm_processor.cpp +++ b/compiler+runtime/src/cpp/jank/codegen/llvm_processor.cpp @@ -830,10 +830,6 @@ namespace jank::codegen /* If we're in return position, our then/else branches will generate return instructions * for us. Since LLVM basic blocks can only have one terminating instruction, we need * to take care to not generate our own, too. */ - std::cout << "llvm_processor::gen: if position is " << expression_position_str(expr.position) - << "\n"; - std::cout << "llvm_processor::gen: if.then position is " - << expression_position_str(expr.then->get_base()->position) << "\n"; auto const is_return(expr.position == expression_position::tail); auto const condition(gen(expr.condition, arity)); auto const truthy_fn_type( @@ -906,7 +902,6 @@ namespace jank::codegen expr::function_arity const &arity) { /* TODO: Generate direct call to __cxa_throw. */ - std::cout << "gen throw: position is " << expression_position_str(expr.position) << "\n"; auto const value(gen(expr.value, arity)); auto const fn_type( llvm::FunctionType::get(ctx->builder->getPtrTy(), { ctx->builder->getPtrTy() }, false)); diff --git a/compiler+runtime/test/jank/form/case/pass-basic-case-tests.jank b/compiler+runtime/test/jank/form/case/pass-basic-case-tests.jank index 524f4b917..2d29e8491 100644 --- a/compiler+runtime/test/jank/form/case/pass-basic-case-tests.jank +++ b/compiler+runtime/test/jank/form/case/pass-basic-case-tests.jank @@ -1,132 +1,3 @@ -(case 1 1 :one - 2 :two - "3" :three - :default) - -(case "3" 1 :one - 2 :two - "3" :three - :default) - -(case true true :yes - false :no - :default) - -(case nil - nil :empty - false :false-value - :default) - -(case 0 - 0 :zero - 1 :one - 2 :two - :default) - -(case "hello" "world" :world - "hello" :greeting - "Clojure" :language - :default) - -;(let* [clojure_core-G__-4480 "FB"] -; (case* clojure_core-G__-4480 0 0 :default -; {2782171365 (clojure.core/condp clojure.core/= clojure_core-G__-4480 3731966369 (clojure.core/condp clojure.core/= clojure_core-G__-4480 (quote "FB") :hash-collision -; (quote "Ea") :hash-collision -; :default) -; :default)} -; :compact :hash-equiv #{3731966369})) - - -(case 3.14 - 3.14 :pi - 2.71 :e - 1.61 :phi - :default) - -(assert - (= - (case 1 - 1 :one - 2 :two - "3" :three - :default) - :one)) - -(assert - (= - (case "3" - 1 :one - 2 :two - "3" :three - :default) - :three)) - -(assert - (= - (case true - true :yes - false :no - :default) - :yes)) - -(assert - (= - (case nil - nil :empty - false :false-value - :default) - :empty)) - -(assert - (= - (case 0 - 0 :zero - 1 :one - 2 :two - :default) - :zero)) - -(assert - (= - (case "hello" - "world" :world - "hello" :greeting - "Clojure" :language - :default) - :greeting)) - -(assert - (= - (case 3.14 - 3.14 :pi - 2.71 :e - 1.61 :phi - :default) - :pi)) - -(assert - (= - (case 'symbol symbol :symbol-match - other :symbol-no-match - :symbol-fallback) - :symbol-match)) - -;does not work in jank yet -;(assert -; (= -; (case \a \a \b -; \c \d -; :not-found) -; \b)) -(assert - (= - (case "AaAaAaAa" "AaAaAaAa" :hasha - "BBBBBBBB" :hashb - :default), :hasha)) - - -:success -======= ;; value position tests (let [x (case 1 1 :one 2 :two @@ -307,11 +178,11 @@ :ignored)] (assert (= (f) :ignored) "Hash collision check - statement position")) -;; Character test (commented out as non-working yet) +;; Character test (commented out as non-working) #_(let [f (fn [] (case \a \a \b \c \d :not-found))] (assert (= (f) \b) "Character match")) -:success +:success \ No newline at end of file diff --git a/compiler+runtime/test/jank/form/case/pass-case-in-value-position.jank b/compiler+runtime/test/jank/form/case/pass-case-in-value-position.jank index 85391aed6..ae3f6b958 100644 --- a/compiler+runtime/test/jank/form/case/pass-case-in-value-position.jank +++ b/compiler+runtime/test/jank/form/case/pass-case-in-value-position.jank @@ -93,8 +93,8 @@ (assert (= x "tuple-match"))) (let [x (case 'symbol - 'symbol :symbol-match - 'other :symbol-no-match + symbol :symbol-match + other :symbol-no-match :symbol-fallback)] (assert (= x :symbol-match))) diff --git a/compiler+runtime/test/jank/form/case/pass-complex-dispatching-case.jank b/compiler+runtime/test/jank/form/case/pass-complex-dispatching-case.jank deleted file mode 100644 index c8d5951f8..000000000 --- a/compiler+runtime/test/jank/form/case/pass-complex-dispatching-case.jank +++ /dev/null @@ -1,16 +0,0 @@ -(case* 42 - {1 0, (+ 40 2) 1} - ["one" "computed 42"] - "default") - -(case* 15 - (zipmap (range 10 20) (range 10)) - (mapv #(str "key " %) (range 10)) - "default") - -(case* "special-key" - {"special-key" 0, "another-key" 1} - ["special" "another"] - "default") - -:success diff --git a/compiler+runtime/test/jank/form/case/pass-complex-keys.jank b/compiler+runtime/test/jank/form/case/pass-complex-keys.jank deleted file mode 100644 index 5cb175ccb..000000000 --- a/compiler+runtime/test/jank/form/case/pass-complex-keys.jank +++ /dev/null @@ -1,80 +0,0 @@ -; Test 1: (case (range 3)) -; test case in value position -(let [xfn - (case (range 3) - (range 3) 0 - 1 "range-match" - "default")] - (assert (= xfn 0))) - -; test case in statement position -(let [xfn (fn [] - (case (range 3) (range 3) 0 - 1 "range-match" - "default") - 1)] - (assert (= (xfn) 1))) - -; test case in return position -(assert - (= - (case (range 3) - (range 3) 0 - 1 "range-match" - "default") - 0)) - - -; Test 2: (case (symbol "foo")) -; test case in value position -(let [xfn - (case (symbol "foo") - (symbol "foo") :symbol-match - (symbol "bar") :not-match - :default)] - (assert (= xfn :symbol-match))) - -; test case in statement position -(let [xfn (fn [] - (case (symbol "foo") - (symbol "foo") :symbol-match - (symbol "bar") :not-match - :default) - 0)] - (assert (= (xfn) 0))) - -; test case in return position -(assert - (= - (case (symbol "foo") - (symbol "foo") :symbol-match - (symbol "bar") :not-match - :default) - :symbol-match)) - - -; Test 3: (case (keyword "key")) -; test case in value position -(let [xfn - (case (keyword "key") - (keyword "key") :keyword-match - :default)] - (assert (= xfn :keyword-match))) - -; test case in statement position -(let [xfn (fn [] - (case (keyword "key") - (keyword "key") :keyword-match - :default) - 0)] - (assert (= (xfn) 0))) - -; test case in return position -(assert - (= - (case (keyword "key") - (keyword "key") :keyword-match - :default) - :keyword-match)) - -:success diff --git a/compiler+runtime/test/jank/form/case/pass-expanded-collection-key-case.jank b/compiler+runtime/test/jank/form/case/pass-expanded-collection-key-case.jank index fca64ab25..67cecd763 100644 --- a/compiler+runtime/test/jank/form/case/pass-expanded-collection-key-case.jank +++ b/compiler+runtime/test/jank/form/case/pass-expanded-collection-key-case.jank @@ -1,161 +1,191 @@ -;; case-star-collections-tests.clj - -;; ================================================== -;; Test 1: (case [:key1 :key2]) -;; ================================================== - -;; Value position -(let [xfn (let* [G__ [:key1 :key2]] - (case* G__ 0 0 :default - {0 (condp = G__ [:key1 :key2] :matched :default) - 1 (condp = G__ :key :not-matched :default)} - :compact :hash-equiv nil))] - (assert (= xfn :matched) "Test 1 Value Position")) - -;; Tail position -(let [f (fn [] - (let* [G__ [:key1 :key2]] - (case* G__ 0 0 :default - {0 (condp = G__ [:key1 :key2] :matched :default) - 1 (condp = G__ :key :not-matched :default)} - :compact :hash-equiv nil)))] - (assert (= (f) :matched) "Test 1 Tail Position")) - -;; Statement position -(let [f (fn [] - (let* [G__ [:key1 :key2]] - (case* G__ 0 0 :default - {0 (condp = G__ [:key1 :key2] :matched :default) - 1 (condp = G__ :key :not-matched :default)} - :compact :hash-equiv nil)) - 0)] - (assert (= (f) 0) "Test 1 Statement Position")) - -;; ================================================== -;; Test 2: (case {:a 1 :b 2}) -;; ================================================== - -;; Value position -(let [xfn (let* [G__ {:a 1 :b 2}] - (case* G__ 0 0 :default - {0 (condp = G__ {:a 1 :b 2} :map-match :default) - 1 (condp = G__ {:a 3 :b 4} :not-matched :default)} - :compact :hash-equiv nil))] - (assert (= xfn :map-match) "Test 2 Value Position")) - -;; Tail position -(let [f (fn [] - (let* [G__ {:a 1 :b 2}] - (case* G__ 0 0 :default - {0 (condp = G__ {:a 1 :b 2} :map-match :default) - 1 (condp = G__ {:a 3 :b 4} :not-matched :default)} - :compact :hash-equiv nil)))] - (assert (= (f) :map-match) "Test 2 Tail Position")) - -;; Statement position -(let [f (fn [] - (let* [G__ {:a 1 :b 2}] - (case* G__ 0 0 :default - {0 (condp = G__ {:a 1 :b 2} :map-match :default) - 1 (condp = G__ {:a 3 :b 4} :not-matched :default)} - :compact :hash-equiv nil)) - 0)] - (assert (= (f) 0) "Test 2 Statement Position")) - -;; ================================================== -;; Test 3: (case [1 2 3]) -;; ================================================== - -;; Value position -(let [xfn (let* [G__ [1 2 3]] - (case* G__ 0 0 :default - {0 (condp = G__ [1 2 3] :vector-match :default) - 1 (condp = G__ [4 5 6] :not-matched :default) - 2 (condp = G__ 1 :one :default)} - :compact :hash-equiv nil))] - (assert (= xfn :vector-match) "Test 3 Value Position")) - -;; Tail position -(let [f (fn [] - (let* [G__ [1 2 3]] - (case* G__ 0 0 :default - {0 (condp = G__ [1 2 3] :vector-match :default) - 1 (condp = G__ [4 5 6] :not-matched :default) - 2 (condp = G__ 1 :one :default)} - :compact :hash-equiv nil)))] - (assert (= (f) :vector-match) "Test 3 Tail Position")) - -;; Statement position -(let [f (fn [] - (let* [G__ [1 2 3]] - (case* G__ 0 0 :default - {0 (condp = G__ [1 2 3] :vector-match :default) - 1 (condp = G__ [4 5 6] :not-matched :default) - 2 (condp = G__ 1 :one :default)} - :compact :hash-equiv nil)) - 0)] - (assert (= (f) 0) "Test 3 Statement Position")) - -;; ================================================== -;; Test 4: (case [[1 2]]) -;; ================================================== - -;; Value position -(let [xfn (let* [G__ [[1 2]]] - (case* G__ 0 0 :default - {0 (condp = G__ [[1 2]] :vector-match :default) - 1 (condp = G__ [{:a 1}] :map-list-match :default)} - :compact :hash-equiv nil))] - (assert (= xfn :vector-match) "Test 4 Value Position")) - -;; Tail position -(let [f (fn [] - (let* [G__ [[1 2]]] - (case* G__ 0 0 :default - {0 (condp = G__ [[1 2]] :vector-match :default) - 1 (condp = G__ [{:a 1}] :map-list-match :default)} - :compact :hash-equiv nil)))] - (assert (= (f) :vector-match) "Test 4 Tail Position")) - -;; Statement position -(let [f (fn [] - (let* [G__ [[1 2]]] - (case* G__ 0 0 :default - {0 (condp = G__ [[1 2]] :vector-match :default) - 1 (condp = G__ [{:a 1}] :map-list-match :default)} - :compact :hash-equiv nil)) - 0)] - (assert (= (f) 0) "Test 4 Statement Position")) - -;; ================================================== -;; Test 5: (case {:a 1}) -;; ================================================== - -;; Value position -(let [xfn (let* [G__ {:a 1}] - (case* G__ 0 0 :default - {0 (condp = G__ {:a 1} :map-match :default) - 1 (condp = G__ {:b 2} :different-map :default)} - :compact :hash-equiv nil))] - (assert (= xfn :map-match) "Test 5 Value Position")) - -;; Tail position -(let [f (fn [] - (let* [G__ {:a 1}] - (case* G__ 0 0 :default - {0 (condp = G__ {:a 1} :map-match :default) - 1 (condp = G__ {:b 2} :different-map :default)} - :compact :hash-equiv nil)))] - (assert (= (f) :map-match) "Test 5 Tail Position")) - -;; Statement position -(let [f (fn [] - (let* [G__ {:a 1}] - (case* G__ 0 0 :default - {0 (condp = G__ {:a 1} :map-match :default) - 1 (condp = G__ {:b 2} :different-map :default)} - :compact :hash-equiv nil)) - 0)] - (assert (= (f) 0) "Test 5 Statement Position")) +; Test 1: (case [:key1 :key2]) +; test case in value position +(let [xfn + (let* [clojure_core-G__-1 [:key1 :key2]] + (case* clojure_core-G__-1 0 1 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-1 [:key1 :key2] :matched + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-1 :key :not-matched + :default)} + :compact :hash-equiv nil))] + (assert (= xfn :matched))) + +; test case in statement position +(let [xfn (fn [] + (let* [clojure_core-G__-2 [:key1 :key2]] + (case* clojure_core-G__-2 0 1 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-2 [:key1 :key2] :matched + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-2 :key :not-matched + :default)} + :compact :hash-equiv nil)) + 0)] + (assert (= (xfn) 0))) + +; test case in return position +(assert + (= + (let* [clojure_core-G__-3 [:key1 :key2]] + (case* clojure_core-G__-3 0 1 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-3 [:key1 :key2] :matched + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-3 :key :not-matched + :default)} + :compact :hash-equiv nil)) + :matched)) + + +; Test 2: (case {:a 1 :b 2}) +; test case in value position +(let [xfn + (let* [clojure_core-G__-4 {:a 1 :b 2}] + (case* clojure_core-G__-4 2 1 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-4 {:a 1 :b 2} :map-match + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-4 {:a 3 :b 4} :not-matched + :default)} + :compact :hash-equiv nil))] + (assert (= xfn :map-match))) + +; test case in statement position +(let [xfn (fn [] + (let* [clojure_core-G__-5 {:a 1 :b 2}] + (case* clojure_core-G__-5 2 1 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-5 {:a 1 :b 2} :map-match + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-5 {:a 3 :b 4} :not-matched + :default)} + :compact :hash-equiv nil)) + 0)] + (assert (= (xfn) 0))) + +; test case in return position +(assert + (= + (let* [clojure_core-G__-6 {:a 1 :b 2}] + (case* clojure_core-G__-6 2 1 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-6 {:a 1 :b 2} :map-match + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-6 {:a 3 :b 4} :not-matched + :default)} + :compact :hash-equiv nil)) + :map-match)) + + +; Test 3: (case [1 2 3]) +; test case in value position +(let [xfn + (let* [clojure_core-G__-7 [1 2 3]] + (case* clojure_core-G__-7 5 3 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-7 1 :one + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-7 [1 2 3] :vector-match + :default), + 2 (clojure.core/condp clojure.core/= clojure_core-G__-7 [4 5 6] :not-matched + :default)} + :compact :hash-equiv nil))] + (assert (= xfn :vector-match))) + +; test case in statement position +(let [xfn (fn [] + (let* [clojure_core-G__-8 [1 2 3]] + (case* clojure_core-G__-8 5 3 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-8 1 :one + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-8 [1 2 3] :vector-match + :default), + 2 (clojure.core/condp clojure.core/= clojure_core-G__-8 [4 5 6] :not-matched + :default)} + :compact :hash-equiv nil)) + 0)] + (assert (= (xfn) 0))) + +; test case in return position +(assert + (= + (let* [clojure_core-G__-9 [1 2 3]] + (case* clojure_core-G__-9 5 3 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-9 1 :one + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-9 [1 2 3] :vector-match + :default), + 2 (clojure.core/condp clojure.core/= clojure_core-G__-9 [4 5 6] :not-matched + :default)} + :compact :hash-equiv nil)) + :vector-match)) + + +; Test 4: (case [[1 2]]) +; test case in value position +(let [xfn + (let* [clojure_core-G__-10 [[1 2]]] + (case* clojure_core-G__-10 10 1 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-10 [[1 2]] :vector-match + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-10 [{:a 1}] :map-list-match + :default)} + :compact :hash-equiv nil))] + (assert (= xfn :vector-match))) + +; test case in statement position +(let [xfn (fn [] + (let* [clojure_core-G__-11 [[1 2]]] + (case* clojure_core-G__-11 10 1 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-11 [[1 2]] :vector-match + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-11 [{:a 1}] :map-list-match + :default)} + :compact :hash-equiv nil)) + 0)] + (assert (= (xfn) 0))) + +; test case in return position +(assert + (= + (let* [clojure_core-G__-12 [[1 2]]] + (case* clojure_core-G__-12 10 1 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-12 [[1 2]] :vector-match + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-12 [{:a 1}] :map-list-match + :default)} + :compact :hash-equiv nil)) + :vector-match)) + + +; Test 5: (case {:a 1}) +; test case in value position +(let [xfn + (let* [clojure_core-G__-13 {:a 1}] + (case* clojure_core-G__-13 2 1 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-13 {:a 1} :map-match + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-13 {:b 2} :different-map + :default)} + :compact :hash-equiv nil))] + (assert (= xfn :map-match))) + +; test case in statement position +(let [xfn (fn [] + (let* [clojure_core-G__-14 {:a 1}] + (case* clojure_core-G__-14 2 1 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-14 {:a 1} :map-match + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-14 {:b 2} :different-map + :default)} + :compact :hash-equiv nil)) + 0)] + (assert (= (xfn) 0))) + +; test case in return position +(assert + (= + (let* [clojure_core-G__-15 {:a 1}] + (case* clojure_core-G__-15 2 1 :default + {0 (clojure.core/condp clojure.core/= clojure_core-G__-15 {:a 1} :map-match + :default), + 1 (clojure.core/condp clojure.core/= clojure_core-G__-15 {:b 2} :different-map + :default)} + :compact :hash-equiv nil)) + :map-match)) :success \ No newline at end of file diff --git a/compiler+runtime/test/jank/form/case/pass-non-constant-case-expr.jank b/compiler+runtime/test/jank/form/case/pass-non-constant-case-expr.jank deleted file mode 100644 index 4f4f875a8..000000000 --- a/compiler+runtime/test/jank/form/case/pass-non-constant-case-expr.jank +++ /dev/null @@ -1,30 +0,0 @@ -; rand(10) is most likely not 1 or 2, so we expect :default -; test case in value position -(let [xfn - (case (rand 10) - 1 :one - 2 :two - :default)] - (assert (= xfn :default))) - -; rand(10) is most likely not 1 or 2, so we expect :default - -; test case in statement position -(let [xfn (fn [] - (case (rand 10) - 1 :one - 2 :two - :default) - :arbitrary-value)] - (assert (= (xfn) :arbitrary-value))) - -; test case in return position -(assert - (= - (case (rand 10) - 1 :one - 2 :two - :default) - :default)) - -:success \ No newline at end of file diff --git a/compiler+runtime/test/jank/form/case/pass-unicode-case.jank b/compiler+runtime/test/jank/form/case/pass-unicode-case.jank deleted file mode 100644 index dd1453e2f..000000000 --- a/compiler+runtime/test/jank/form/case/pass-unicode-case.jank +++ /dev/null @@ -1,35 +0,0 @@ -;; This does not work yet. -;; test case in value position -;(let [xfn -; (case "你好" -; "你好" :chinese -; "こんにちは" :japanese -; "👋" :emoji -; :default)] -; (assert (= xfn :chinese))) -; -;; Since the value is "你好", we expect :chinese -; -;; test case in statement position -;(let [xfn (fn [] -; (case "你好" -; "你好" :chinese -; "こんにちは" :japanese -; "👋" :emoji -; :default) -; :arbitrary-value)] -; (assert (= (xfn) :arbitrary-value))) -; -;; test case in return position -;(assert -; (= -; (case "你好" -; "你好" :chinese -; "こんにちは" :japanese -; "👋" :emoji -; :default) -; :chinese)) -; -;; Since the value is "你好", we expect :chinese -; -;:success