(ns varint.core-test (:require [varint.core :refer :all] [midje.sweet :refer :all] [clojure.test.check.clojure-test :refer [defspec]] [clojure.test.check.generators :as gen] [clojure.test.check.properties :as prop])) (facts "about varint" (facts "encoding numbers under 128" (encode 1) => "00000001" (encode 8) => "00001000" (encode 127) => "01111111") (facts "encoding numbers greater or equal than 128" (encode 300) => "1010110000000010") (facts "decoding varints" (decode "1010110000000010") => 300)) (defspec coding-and-decoding 1000 (prop/for-all [num (gen/large-integer* {:min 0})] (= (-> num encode decode) num)))