|
5 | 5 |
|
6 | 6 | (unfinished)
|
7 | 7 |
|
8 |
| -(facts |
| 8 | +(facts "evaluate expressions" |
9 | 9 | (eval-expr [:eq [:val "a"] [:val "b"]] {}) => falsey
|
10 | 10 | (eval-expr [:eq [:val "a"] [:val "a"]] {}) => truthy
|
11 | 11 | (eval-expr [:neq [:val "a"] [:val "b"]] {}) => truthy
|
12 | 12 | (eval-expr [:lt [:val 10] [:val 11]] {}) => truthy
|
13 | 13 | (eval-expr [:lt-eq [:val 10] [:val 10]] {}) => truthy
|
14 | 14 | (eval-expr [:gt [:val 10] [:val 9]] {}) => truthy
|
| 15 | + (eval-expr [:gt-eq [:val 10] [:val 9]] {}) => truthy |
15 | 16 | (eval-expr [:gt-eq [:val 10] [:val 10]] {}) => truthy
|
16 | 17 | (eval-expr [:path [[:key "foo"]]] {:current (m/root {:foo "bar"})}) => "bar"
|
17 |
| - (eval-expr [:some [:path [[:current] [:child] [:key "foo"]]]] {:current (m/root {:foo "bar"})}) => truthy |
18 |
| - (eval-expr [:some [:path [[:current] [:child] [:key "foo"]]]] {:current (m/root {:foo nil})}) => falsey |
19 |
| - (eval-expr [:eq [:path [[:key "foo"]]] [:val "bar"]] {:current (m/root {:foo "bar"})}) => truthy) |
| 18 | + (eval-expr [:bool [:path [[:current] [:child] [:key "foo"]]]] {:current (m/root {:foo "bar"})}) => truthy |
| 19 | + (eval-expr [:bool [:path [[:current] [:child] [:key "foo"]]]] {:current (m/root {:foo nil})}) => falsey |
| 20 | + (eval-expr [:eq [:path [[:key "foo"]]] [:val "bar"]] {:current (m/root {:foo "bar"})}) => truthy |
| 21 | + |
| 22 | + (eval-expr [:val true] {}) => truthy |
| 23 | + (eval-expr [:val false] {}) => falsey |
| 24 | + (eval-expr [:bool [:val true]] {}) => truthy |
| 25 | + (eval-expr [:bool [:val false]] {}) => falsey |
| 26 | + |
| 27 | + ;; 'and' expressions |
| 28 | + (eval-expr [:and [:bool [:val true]] [:bool [:val true]]] {}) => truthy |
| 29 | + (eval-expr [:and [:bool [:val true]] [:bool [:val false]]] {}) => falsey |
| 30 | + (eval-expr [:and [:bool [:val false]] [:bool [:val true]]] {}) => falsey |
| 31 | + (eval-expr [:and [:bool [:val false]] [:bool [:val false]]] {}) => falsey |
| 32 | + (eval-expr [:and [:bool [:val true]] [:bool [:val "bar"]]] {}) => truthy |
| 33 | + (eval-expr [:and [:bool [:val "bar"]] [:bool [:val false]]] {}) => falsey |
| 34 | + (eval-expr [:and [:bool [:val true]] [:lt [:val 10] [:val 11]]] {}) => truthy |
| 35 | + (eval-expr [:and [:bool [:val true]] |
| 36 | + [:path [[:key "foo"]]]] {:current (m/root {:foo "bar"}) => truthy}) |
| 37 | + (eval-expr [:and [:bool [:val true]] |
| 38 | + [:path [[:key "foo"]]]] {:current (m/root {:foo nil}) => falsey}) |
| 39 | + |
| 40 | + ;; 'or' expressions |
| 41 | + (eval-expr [:or [:bool [:val true]] [:bool [:val true]]] {}) => truthy |
| 42 | + (eval-expr [:or [:bool [:val true]] [:bool [:val false]]] {}) => truthy |
| 43 | + (eval-expr [:or [:bool [:val false]] [:bool [:val true]]] {}) => truthy |
| 44 | + (eval-expr [:or [:bool [:val false]] [:bool [:val false]]] {}) => falsey |
| 45 | + (eval-expr [:or [:bool [:val true]] [:bool [:val "bar"]]] {}) => truthy |
| 46 | + (eval-expr [:or [:bool [:val "bar"]] [:bool [:val false]]] {}) => truthy |
| 47 | + (eval-expr [:or [:bool [:val true]] [:lt [:val 10] [:val 11]]] {}) => truthy |
| 48 | + (eval-expr [:or [:bool [:val false]] |
| 49 | + [:path [[:key "foo"]]]] {:current (m/root {:foo "bar"}) => truthy}) |
| 50 | + (eval-expr [:or [:bool [:val false]] |
| 51 | + [:path [[:key "foo"]]]] {:current (m/root {:foo nil}) => falsey})) |
20 | 52 |
|
21 | 53 | (facts
|
22 | 54 | (select-by [:key "hello"] (m/root {:hello "world"})) => (m/create "world" [:hello])
|
|
117 | 149 | {:root (m/root {:foo [{:bar "wrong" :hello "goodbye"}
|
118 | 150 | {:bar "baz" :hello "world"}]})}) => (list (m/create "world" [:foo 1 :hello]))
|
119 | 151 | (walk [:path [[:root]]
|
120 |
| - [:selector [:filter [:some [:path [[:current] |
| 152 | + [:selector [:filter [:bool [:path [[:current] |
121 | 153 | [:child]
|
122 | 154 | [:key "bar"]]]]]]]
|
123 | 155 | {:root (m/root {:hello "world" :foo {:bar "baz"}})}) => (list (m/create {:bar "baz"} [:foo])))
|
|
0 commit comments