Skip to content

Instantly share code, notes, and snippets.

@spinningtopsofdoom
spinningtopsofdoom / cljs-test-check-prng-benchmark.cljs
Created October 26, 2017 18:58
Benchmark for test.check's ClojureScript random number generator
(require '[clojure.test.check.random :as tr])
(simple-benchmark [sr (tr/next-rng) times 2000]
(->> (iterate #(first (tr/split %)) sr)
(take times)
(map tr/rand-long)
doall)
100)
@spinningtopsofdoom
spinningtopsofdoom / cljs-long-tests.cljs
Last active October 26, 2017 19:54
Port of tests for goog.math.Long multiply tests to ClojureScript
(require '[clojure.test.check.random :as tcr])
; Long tests taken from Google Closure Libraries Long tests
; https://github.com/google/closure-library/blob/master/closure/goog/math/long_test.js
(def TEST_BITS
#js [
0x80000000, 0x00000000, 0xb776d5f5, 0x5634e2db, 0xffefffff, 0xffffffff,
0xfff00000, 0x00000000, 0xfffeffff, 0xffffffff, 0xffff0000, 0x00000000,
0xfffffffe, 0xffffffff, 0xffffffff, 0x00000000, 0xffffffff, 0xfeffffff,
0xffffffff, 0xff000000, 0xffffffff, 0xfffeffff, 0xffffffff, 0xffff0000,
0xffffffff, 0xffff7fff, 0xffffffff, 0xffff8000, 0xffffffff, 0xfffffffe,
@spinningtopsofdoom
spinningtopsofdoom / js-obj->cljs-map.cljs
Created July 24, 2017 16:50
Convert Dom / Event Object to ClojureScript Map
(ns my-app.core
(:require [goog.object :as gobj]))
(defn js-obj->clj-map
"Uses the Google Closure object module to get the keys and values of any JavaScript Object
and put them into a ClojureScript map"
[obj]
(zipmap (gobj/getKeys obj) (gobj/getValues obj)))
@spinningtopsofdoom
spinningtopsofdoom / component_index.cljs
Created October 8, 2014 19:07
getting index for an Om component
(defn piece-view [data owner]
(let [[_ row] (om/path data)]
(reify
om/IRender
(render [_]
(dom/div nil row)))))
(defn board-view [app owner]
(let [size 40]
(reify
om/IRender