babashka/test-resources/lib_tests/arrangement/core_test.cljc
Gabriel Horner 3a30a11c1f
Add more library tests (#1114)
* Add environ and table tests

Also allow for directory option and fix nasty nil test-dir bug

* Add 7 libraries via add-libtest.clj

Added :branch option and saved additional info to bb-tested-libs.edn to
reproduce test fetching later

* Disable intermittent failing test
2021-12-22 21:27:29 +01:00

82 lines
1.4 KiB
Clojure

(ns arrangement.core-test
(:require
[arrangement.core :as order]
[clojure.test :refer [deftest is]]))
(defn- is-sorted
[& values]
(dotimes [_ 10]
(is (= values (sort order/rank (shuffle values))))))
(deftest primitive-ordering
(is-sorted
nil false true 0 \a "a" :a 'a))
(deftest number-ordering
(is-sorted
-123 0.0 3.14159M #?(:clj 37/8) 4096N))
(deftest string-ordering
(is-sorted
"alpha" "alphabet" "beta" "omega"))
(deftest keyword-ordering
(is-sorted
:foo :zap :a-ns/baz :my-ns/bar))
(deftest symbol-ordering
(is-sorted
'x 'y 'aaa/foo 'z/bar))
(deftest sequence-ordering
(is-sorted
'(1 2 3)
[1 2 3]
[1 2 3 4]
[1 2 4]
[1 \2 "3"]
[\1]))
(deftest set-ordering
(is-sorted
#{:one}
#{:two}
#{:zzz}
#{:one :two}
#{:one :zzz}
#{:a :e :f}
#{:b :c :d}))
(deftest map-ordering
(is-sorted
{:a 1}
{:a 2}
{:b 1})
(is-sorted
{:x 1}
{:a 1, :q 2}
{:a 1, :b 2, :c 3})
(is-sorted
{:a 1, :b 2}
{:a 1, :b :*}
{:x 1, :y 2}
{:a 1, :b 8.0, :c 'x}))
#?(:clj
(deftest class-ordering
(is-sorted
;; BB-TEST-PATCH: bb doesn't have java.util.Currency/getInstance
#_(java.util.Currency/getInstance "JPY")
#_(java.util.Currency/getInstance "USD")
(java.util.Date. 1234567890)
(java.util.Date. 1234567891))))