Add support for clojure.data.generators (#470)

This commit is contained in:
Jeroen van Dijk 2020-06-12 16:35:34 +02:00 committed by GitHub
parent d88c034686
commit 0754975172
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 61 additions and 0 deletions

View file

@ -0,0 +1,21 @@
#!/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 {org.clojure/data.generators {:mvn/version "1.0.0"}}}' -Spath)
$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e "
(require '[clojure.data.generators-test])
(require '[clojure.test :as t])
(let [{:keys [:test :pass :fail :error]} (t/run-tests 'clojure.data.generators-test)]
(when-not (pos? test)
(System/exit 1))
(System/exit (+ fail error)))
"

View file

@ -26,3 +26,4 @@ script/lib_tests/clojure_data_zip_test
script/lib_tests/cljc_java_time_test
script/lib_tests/camel_snake_kebab_test
script/lib_tests/aero_test
script/lib_tests/clojure_data_generators_test

View file

@ -121,6 +121,7 @@
java.lang.ProcessBuilder$Redirect
java.lang.Runtime
java.lang.RuntimeException
java.lang.Short
java.lang.String
java.lang.StringBuilder
java.lang.System
@ -194,6 +195,7 @@
java.util.jar.JarFile
java.util.jar.JarEntry
java.util.jar.JarFile$JarFileEntry
java.util.Random
java.util.regex.Pattern
java.util.Base64
java.util.Base64$Decoder

View file

@ -400,6 +400,7 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that
'{ArithmeticException java.lang.ArithmeticException
AssertionError java.lang.AssertionError
BigDecimal java.math.BigDecimal
BigInteger java.math.BigInteger
Boolean java.lang.Boolean
Byte java.lang.Byte
Character java.lang.Character
@ -421,6 +422,7 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that
RuntimeException java.lang.RuntimeException
Process java.lang.Process
ProcessBuilder java.lang.ProcessBuilder
Short java.lang.Short
String java.lang.String
StringBuilder java.lang.StringBuilder
System java.lang.System

View file

@ -0,0 +1,35 @@
(ns clojure.data.generators-test
(:require [clojure.data.generators :as gen]
[clojure.test :refer (deftest is)]))
(defn print-read-roundtrip
[o]
(binding [*print-length* nil
*print-level* nil]
(-> o pr-str read-string)))
(defn check-print-read-roundtrip
[o]
(let [o2 (print-read-roundtrip o)]
(when-not (= o o2)
(throw (ex-info "Value cannot roundtrip, see ex-data" {:value o :roundtrip o2})))))
(deftest test-print-read-roundtrip
(dotimes [_ 50]
(check-print-read-roundtrip (gen/anything))))
(deftest test-shuffle
(dotimes [_ 50]
(let [coll (gen/vec gen/anything)
shuf (gen/shuffle coll)]
(is (= (into #{} coll)
(into #{} shuf))))))
(deftest test-reservoir-sample-consistency
(dotimes [n 50]
(let [coll (range 100)
sample-1 (binding [gen/*rnd* (java.util.Random. n)]
(gen/reservoir-sample 10 coll))
sample-2 (binding [gen/*rnd* (java.util.Random. n)]
(gen/reservoir-sample 10 coll))]
(is (= sample-1 sample-2)))))