MCPcopy Create free account
hub / github.com/comnik/declarative-dataflow / or

Function or

tests/or_test.rs:127–293  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

125
126#[test]
127fn or() {
128 let data = vec![
129 TxData::add(1, ":name", String("Ivan".to_string())),
130 TxData::add(1, ":age", Number(10)),
131 TxData::add(2, ":name", String("Ivan".to_string())),
132 TxData::add(2, ":age", Number(20)),
133 TxData::add(3, ":name", String("Oleg".to_string())),
134 TxData::add(3, ":age", Number(10)),
135 TxData::add(4, ":name", String("Oleg".to_string())),
136 TxData::add(4, ":age", Number(20)),
137 TxData::add(5, ":name", String("Ivan".to_string())),
138 TxData::add(5, ":age", Number(10)),
139 TxData::add(6, ":name", String("Ivan".to_string())),
140 TxData::add(6, ":age", Number(20)),
141 ];
142
143 run_cases(vec![
144 Case {
145 description: "[:find ?e :where (or [?e :name Oleg] [?e :age 10])]",
146 plan: Plan::Union(Union {
147 variables: vec![0],
148 plans: vec![
149 Plan::Hector(Hector {
150 variables: vec![0],
151 bindings: vec![
152 Binding::attribute(0, ":name", 1),
153 Binding::constant(1, String("Oleg".to_string())),
154 ],
155 }),
156 Plan::Hector(Hector {
157 variables: vec![0],
158 bindings: vec![
159 Binding::attribute(0, ":age", 1),
160 Binding::constant(1, Number(10)),
161 ],
162 }),
163 ],
164 }),
165 transactions: vec![data.clone()],
166 expectations: vec![vec![
167 (vec![Eid(1)], 0, 1),
168 (vec![Eid(3)], 0, 1),
169 (vec![Eid(4)], 0, 1),
170 (vec![Eid(5)], 0, 1),
171 ]],
172 },
173 Case {
174 description: "[:find ?e :where (or [?e :name Oleg] [?e :age 30])] (one branch empty)",
175 plan: Plan::Union(Union {
176 variables: vec![0],
177 plans: vec![
178 Plan::Hector(Hector {
179 variables: vec![0],
180 bindings: vec![
181 Binding::attribute(0, ":name", 1),
182 Binding::constant(1, String("Oleg".to_string())),
183 ],
184 }),

Callers

nothing calls this directly

Calls 1

run_casesFunction · 0.70

Tested by

no test coverage detected