Add more java.time classes, test with cljc.java-time tests
This commit is contained in:
parent
d4492071b6
commit
696d4102a7
5 changed files with 129 additions and 2 deletions
22
script/lib_tests/cljc_java_time_test
Executable file
22
script/lib_tests/cljc_java_time_test
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
export BABASHKA_CLASSPATH
|
||||
BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {cljc.java-time {:git/url "https://github.com/henryw374/cljc.java-time.git" :sha "e3d184b78e933322b3fcaa6ca66cbb8f42a6b35c"}}}' -Spath)"
|
||||
|
||||
$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e "
|
||||
(require '[clojure.java.io :as io])
|
||||
(require '[cljc.java-time-test])
|
||||
(require '[clojure.test :as t])
|
||||
(let [{:keys [:test :pass :fail :error]} (t/run-tests 'cljc.java-time-test)]
|
||||
(when-not (pos? test)
|
||||
(System/exit 1))
|
||||
(System/exit (+ fail error)))
|
||||
"
|
||||
|
|
@ -23,3 +23,4 @@ script/lib_tests/clojure_data_csv_test
|
|||
script/lib_tests/combinatorics_test
|
||||
script/lib_tests/doric_test
|
||||
script/lib_tests/clojure_data_zip_test
|
||||
script/lib_tests/cljc_java_time_test
|
||||
|
|
|
|||
|
|
@ -109,6 +109,7 @@
|
|||
java.lang.Exception
|
||||
java.lang.Integer
|
||||
java.lang.Long
|
||||
java.lang.Number
|
||||
java.lang.NumberFormatException
|
||||
java.lang.Math
|
||||
java.lang.Object
|
||||
|
|
@ -152,7 +153,7 @@
|
|||
java.nio.file.attribute.PosixFilePermissions])
|
||||
java.security.MessageDigest
|
||||
~@(when features/java-time?
|
||||
'[java.time.format.DateTimeFormatter
|
||||
`[java.time.format.DateTimeFormatter
|
||||
java.time.Clock
|
||||
java.time.DateTimeException
|
||||
java.time.DayOfWeek
|
||||
|
|
@ -172,8 +173,19 @@
|
|||
java.time.ZonedDateTime
|
||||
java.time.ZoneId
|
||||
java.time.ZoneOffset
|
||||
java.time.format.DateTimeFormatterBuilder
|
||||
java.time.format.DecimalStyle
|
||||
java.time.format.ResolverStyle
|
||||
java.time.format.SignStyle
|
||||
java.time.temporal.ChronoField
|
||||
java.time.temporal.ChronoUnit
|
||||
java.time.temporal.TemporalAccessor])
|
||||
java.time.temporal.IsoFields
|
||||
java.time.temporal.TemporalField
|
||||
~(symbol "[Ljava.time.temporal.TemporalField;")
|
||||
java.time.format.TextStyle
|
||||
java.time.temporal.Temporal
|
||||
java.time.temporal.TemporalAccessor
|
||||
java.time.temporal.TemporalAdjuster])
|
||||
java.util.concurrent.LinkedBlockingQueue
|
||||
java.util.jar.JarFile
|
||||
java.util.jar.JarEntry
|
||||
|
|
@ -185,6 +197,7 @@
|
|||
java.util.Date
|
||||
java.util.MissingResourceException
|
||||
java.util.Properties
|
||||
java.util.Set
|
||||
java.util.UUID
|
||||
java.util.concurrent.TimeUnit
|
||||
java.util.zip.InflaterInputStream
|
||||
|
|
|
|||
|
|
@ -411,6 +411,7 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that
|
|||
File java.io.File
|
||||
Long java.lang.Long
|
||||
Math java.lang.Math
|
||||
Number java.lang.Number
|
||||
NumberFormatException java.lang.NumberFormatException
|
||||
Object java.lang.Object
|
||||
Runtime java.lang.Runtime
|
||||
|
|
|
|||
90
test-resources/lib_tests/cljc/java_time_test.cljc
Normal file
90
test-resources/lib_tests/cljc/java_time_test.cljc
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
(ns cljc.java-time-test
|
||||
(:require [clojure.test :refer [deftest testing is]]
|
||||
[cljc.java-time.temporal.chrono-field]
|
||||
[cljc.java-time.temporal.chrono-unit]
|
||||
[cljc.java-time.temporal.iso-fields]
|
||||
[cljc.java-time.temporal.temporal]
|
||||
[cljc.java-time.temporal.temporal-accessor]
|
||||
[cljc.java-time.temporal.temporal-adjuster]
|
||||
[cljc.java-time.format.date-time-formatter]
|
||||
[cljc.java-time.format.resolver-style]
|
||||
[cljc.java-time.format.date-time-formatter-builder]
|
||||
[cljc.java-time.format.decimal-style]
|
||||
[cljc.java-time.format.sign-style]
|
||||
[cljc.java-time.format.text-style]
|
||||
[cljc.java-time.clock :as clock]
|
||||
[cljc.java-time.day-of-week :as day-of-week]
|
||||
[cljc.java-time.duration :as duration]
|
||||
[cljc.java-time.instant :as instant]
|
||||
[cljc.java-time.local-date :as local-date]
|
||||
[cljc.java-time.local-date-time :as local-date-time]
|
||||
[cljc.java-time.local-time :as local-time]
|
||||
[cljc.java-time.month :as month]
|
||||
[cljc.java-time.month-day :as month-day]
|
||||
[cljc.java-time.offset-date-time :as offset-date-time]
|
||||
[cljc.java-time.offset-time :as offset-time]
|
||||
[cljc.java-time.period :as period]
|
||||
[cljc.java-time.year :as year]
|
||||
[cljc.java-time.year-month :as year-month]
|
||||
[cljc.java-time.zone-id :as zone-id]
|
||||
[cljc.java-time.zone-offset :as zone-offset]
|
||||
[cljc.java-time.zoned-date-time :as zoned-date-time]
|
||||
[cljc.java-time.extn.predicates :as predicates]
|
||||
|
||||
#?(:cljs [cljs.java-time.extend-eq-and-compare])))
|
||||
|
||||
#?(:clj
|
||||
(deftest multi-tail-var-args
|
||||
(testing "multi-tail var args example"
|
||||
(is (let [a (make-array java.time.temporal.TemporalField 1)]
|
||||
(aset a 0 cljc.java-time.temporal.chrono-field/nano-of-second)
|
||||
(cljc.java-time.format.date-time-formatter/with-resolver-fields
|
||||
cljc.java-time.format.date-time-formatter/iso-instant
|
||||
a))))))
|
||||
|
||||
(deftest normal-multi-tail
|
||||
(is (year-month/of (int 12) (int 12)))
|
||||
(is (year-month/of (int 12) month/january)))
|
||||
|
||||
(deftest get-longs
|
||||
(testing "normal getter"
|
||||
(is (year-month/get-year
|
||||
(year-month/now))))
|
||||
(testing "getLong, which has a different name in jsjoda :-S "
|
||||
(is (year-month/get-long
|
||||
(year-month/now)
|
||||
cljc.java-time.temporal.chrono-field/month-of-year))))
|
||||
|
||||
(deftest leap-year
|
||||
(testing "no obv. way to accommodate both isLeap methods. just going with the static one"
|
||||
(is (year/is-leap 24))))
|
||||
|
||||
(deftest of-works-in-js-and-jvm
|
||||
(is (= (local-date-time/of 2011 month/january 3 11 59) (local-date-time/of 2011 month/january 3 11 59))))
|
||||
|
||||
(deftest predicates
|
||||
(is (true? (predicates/clock? (clock/system-utc))))
|
||||
(is (true? (predicates/day-of-week? day-of-week/monday)))
|
||||
(is (true? (predicates/duration? (duration/parse "PT1M"))))
|
||||
(is (true? (predicates/instant? (instant/now))))
|
||||
(is (true? (predicates/local-date? (local-date/now))))
|
||||
(is (true? (predicates/local-date-time? (local-date-time/now))))
|
||||
(is (true? (predicates/local-time? (local-time/now))))
|
||||
(is (true? (predicates/month? month/may)))
|
||||
(is (true? (predicates/month-day? (month-day/now))))
|
||||
(is (true? (predicates/offset-date-time? (offset-date-time/now))))
|
||||
(is (true? (predicates/offset-time? (offset-time/now))))
|
||||
(is (true? (predicates/period? (period/parse "P1D"))))
|
||||
(is (true? (predicates/year? (year/now))))
|
||||
(is (true? (predicates/year-month? (year-month/now))))
|
||||
(is (true? (predicates/zone-id? (zone-id/system-default))))
|
||||
(is (true? (predicates/zone-offset? zone-offset/utc)))
|
||||
(is (true? (predicates/zoned-date-time? (zoned-date-time/now))))
|
||||
|
||||
(is (true? (predicates/date? (local-date/now))))
|
||||
(is (true? (predicates/date-time? (local-date-time/now))))
|
||||
(is (true? (predicates/time? (local-time/now))))
|
||||
|
||||
(is (false? (predicates/local-date? 16)))
|
||||
(is (false? (predicates/month? 16))))
|
||||
|
||||
Loading…
Reference in a new issue