174 lines
11 KiB
HTML
174 lines
11 KiB
HTML
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<link rel="stylesheet" href="../../coverage.css"/> <title> the_great_game/world/routes.clj </title>
|
|
</head>
|
|
<body>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
001 (ns the-great-game.world.routes
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
002 "Conceptual (plan level) routes, represented as tuples of location ids."
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
003 (:require [the-great-game.utils :refer [cyclic?]]))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
004
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
005 (defn find-routes
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
006 "Find routes from among these `routes` from `from`; if `to` is supplied,
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
007 to `to`, by breadth-first search."
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
008 ([routes from]
|
|
</span><br/>
|
|
<span class="covered" title="2 out of 2 forms covered">
|
|
009 (map
|
|
</span><br/>
|
|
<span class="covered" title="5 out of 5 forms covered">
|
|
010 (fn [to] (cons from to))
|
|
</span><br/>
|
|
<span class="covered" title="2 out of 2 forms covered">
|
|
011 (remove
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
012 empty?
|
|
</span><br/>
|
|
<span class="covered" title="2 out of 2 forms covered">
|
|
013 (map
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
014 (fn [route]
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
015 (remove
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
016 #(= from %)
|
|
</span><br/>
|
|
<span class="covered" title="9 out of 9 forms covered">
|
|
017 (if (some #(= % from) route) route)))
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
018 routes))))
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
019 ([routes from to]
|
|
</span><br/>
|
|
<span class="covered" title="5 out of 5 forms covered">
|
|
020 (let [steps (find-routes routes from)
|
|
</span><br/>
|
|
<span class="covered" title="2 out of 2 forms covered">
|
|
021 found (filter
|
|
</span><br/>
|
|
<span class="covered" title="10 out of 10 forms covered">
|
|
022 (fn [step] (if (some #(= to %) step) step))
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
023 steps)]
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
024 (if
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
025 (empty? found)
|
|
</span><br/>
|
|
<span class="covered" title="6 out of 6 forms covered">
|
|
026 (find-routes routes from to steps)
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
027 found)))
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
028 ([routes from to steps]
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
029 (if
|
|
</span><br/>
|
|
<span class="covered" title="5 out of 5 forms covered">
|
|
030 (not (empty? steps))
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
031 (let [paths (remove
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
032 cyclic?
|
|
</span><br/>
|
|
<span class="covered" title="2 out of 2 forms covered">
|
|
033 (mapcat
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
034 (fn [path]
|
|
</span><br/>
|
|
<span class="covered" title="2 out of 2 forms covered">
|
|
035 (map
|
|
</span><br/>
|
|
<span class="covered" title="7 out of 7 forms covered">
|
|
036 (fn [x] (concat path (rest x)))
|
|
</span><br/>
|
|
<span class="covered" title="6 out of 6 forms covered">
|
|
037 (find-routes routes (last path))))
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
038 steps))
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
039 found (filter
|
|
</span><br/>
|
|
<span class="covered" title="6 out of 6 forms covered">
|
|
040 #(= (last %) to) paths)]
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
041 (if
|
|
</span><br/>
|
|
<span class="covered" title="3 out of 3 forms covered">
|
|
042 (empty? found)
|
|
</span><br/>
|
|
<span class="covered" title="6 out of 6 forms covered">
|
|
043 (find-routes routes from to paths)
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
044 found)))))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
045
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
046 (defn find-route
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
047 "Find a single route from `from` to `to` in this `world-or-routes`, which
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
048 may be either a world as defined in [[the-great-game.world.world]] or else
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
049 a sequence of tuples of keywords."
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
050 [world-or-routes from to]
|
|
</span><br/>
|
|
<span class="covered" title="2 out of 2 forms covered">
|
|
051 (first
|
|
</span><br/>
|
|
<span class="covered" title="2 out of 2 forms covered">
|
|
052 (find-routes
|
|
</span><br/>
|
|
<span class="partial" title="7 out of 8 forms covered">
|
|
053 (or (:routes world-or-routes) world-or-routes)
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
054 from
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
055 to)))
|
|
</span><br/>
|
|
</body>
|
|
</html>
|