144 lines
8.2 KiB
HTML
144 lines
8.2 KiB
HTML
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<link rel="stylesheet" href="../../../coverage.css"/> <title> cc/journeyman/the_great_game/utils.clj </title>
|
|
</head>
|
|
<body>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
001 (ns cc.journeyman.the-great-game.utils)
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
002
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
003 (defn cyclic?
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
004 "True if two or more elements of `route` are identical"
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
005 [route]
|
|
</span><br/>
|
|
<span class="covered" title="8 out of 8 forms covered">
|
|
006 (not= (count route)(count (set route))))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
007
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
008 (defn deep-merge
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
009 "Recursively merges maps. Stolen from
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
010 https://dnaeon.github.io/recursively-merging-maps-in-clojure/"
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
011 [& maps]
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
012 (letfn [(m [& xs]
|
|
</span><br/>
|
|
<span class="covered" title="17 out of 17 forms covered">
|
|
013 (if (some #(and (map? %) (not (record? %))) xs)
|
|
</span><br/>
|
|
<span class="covered" title="5 out of 5 forms covered">
|
|
014 (apply merge-with m xs)
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
015 (last xs)))]
|
|
</span><br/>
|
|
<span class="covered" title="4 out of 4 forms covered">
|
|
016 (reduce m maps)))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
017
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
018 (defn make-target-filter
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
019 "Construct a filter which, when applied to a list of maps,
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
020 will pass those which match these `targets`, where each target
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
021 is a tuple [key value]."
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
022 ;; TODO: this would probably be more elegant as a macro
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
023 [targets]
|
|
</span><br/>
|
|
<span class="covered" title="2 out of 2 forms covered">
|
|
024 (eval
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
025 (list
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
026 'fn
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
027 (vector 'm)
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
028 (cons
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
029 'and
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
030 (map
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
031 #(list
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
032 '=
|
|
</span><br/>
|
|
<span class="covered" title="6 out of 6 forms covered">
|
|
033 (list (first %) 'm)
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
034 (nth % 1))
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
035 targets)))))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
036
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
037 (defn value-or-default
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
038 "Return the value of this key `k` in this map `m`, or this `dflt` value if
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
039 there is none."
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
040 [m k dflt]
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 13 forms covered">
|
|
041 (or (when (map? m) (m k)) dflt))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
042
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
043 ;; (value-or-default {:x 0 :y 0 :altitude 7} :altitude 8)
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
044 ;; (value-or-default {:x 0 :y 0 :altitude 7} :alt 8)
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
045 ;; (value-or-default nil :altitude 8)
|
|
</span><br/>
|
|
</body>
|
|
</html>
|