mirror of
https://github.com/logseq/logseq.git
synced 2026-06-01 19:01:22 +00:00
Adjusted test to work with BigNums
This commit is contained in:
@@ -1,10 +1,15 @@
|
||||
(ns frontend.extensions.calc-test
|
||||
(:require [clojure.test :as test :refer [are deftest testing]]
|
||||
[clojure.edn :as edn]
|
||||
[frontend.extensions.calc :as calc]))
|
||||
|
||||
(defn convert-bigNum [b]
|
||||
(edn/read-string (str b))
|
||||
)
|
||||
|
||||
(defn run [expr]
|
||||
{:pre [(string? expr)]}
|
||||
(calc/eval (calc/parse expr)))
|
||||
(convert-bigNum (calc/eval (calc/parse expr))))
|
||||
|
||||
(deftest basic-arithmetic
|
||||
(testing "numbers are parsed as expected"
|
||||
@@ -102,7 +107,7 @@
|
||||
(testing "variables can be remembered"
|
||||
(are [final-env expr] (let [env (calc/new-env)]
|
||||
(calc/eval env (calc/parse expr))
|
||||
(= final-env @env))
|
||||
(= final-env (into {} (for [[k v] @env] [k (convert-bigNum v)]))))
|
||||
{"a" 1} "a = 1"
|
||||
{"a" -1} "a = -1"
|
||||
{"variable" 1} "variable = 1 + 0 * 2"
|
||||
@@ -114,7 +119,7 @@
|
||||
(testing "variables can have underscores"
|
||||
(are [final-env expr] (let [env (calc/new-env)]
|
||||
(calc/eval env (calc/parse expr))
|
||||
(= final-env @env))
|
||||
(= final-env (into {} (for [[k v] @env] [k (convert-bigNum v)]))))
|
||||
{"a_a" 1} "a_a = 1"
|
||||
{"x_yy_zzz" 1} "x_yy_zzz= 1"
|
||||
{"foo_bar_baz" 1} "foo_bar_baz = 1 + -0 * 2"))
|
||||
@@ -122,7 +127,7 @@
|
||||
(are [final-env exprs] (let [env (calc/new-env)]
|
||||
(doseq [expr exprs]
|
||||
(calc/eval env (calc/parse expr)))
|
||||
(= final-env @env))
|
||||
(= final-env (into {} (for [[k v] @env] [k (convert-bigNum v)]))))
|
||||
{"a" 1 "b" 2} ["a = 1" "b = a + 1"]
|
||||
{"a" 1 "b" 0} ["a = 1" "b = -a + 1"]
|
||||
{"a" 1 "b" 3} ["a = 1" "b=a*2+1"]
|
||||
@@ -133,7 +138,7 @@
|
||||
(are [final-env exprs] (let [env (calc/new-env)]
|
||||
(doseq [expr exprs]
|
||||
(calc/eval env (calc/parse expr)))
|
||||
(= final-env @env))
|
||||
(= final-env (into {} (for [[k v] @env] [k (convert-bigNum v)]))))
|
||||
{"a" 2} ["a = 1" "a = 2"]
|
||||
{"a" 2 "b" 2} ["a = 1" "b = a + 1" "a = b"]
|
||||
{"variable" 1 "x" 0} ["variable = 1 + 0 * 2" "x = log(variable)" "x = variable - 1"])))
|
||||
|
||||
Reference in New Issue
Block a user