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

Function or_join

tests/or_test.rs:296–344  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

294
295#[test]
296fn or_join() {
297 let data = vec![
298 TxData::add(1, ":name", String("Ivan".to_string())),
299 TxData::add(1, ":age", Number(10)),
300 TxData::add(2, ":name", String("Ivan".to_string())),
301 TxData::add(2, ":age", Number(20)),
302 TxData::add(3, ":name", String("Oleg".to_string())),
303 TxData::add(3, ":age", Number(10)),
304 TxData::add(4, ":name", String("Oleg".to_string())),
305 TxData::add(4, ":age", Number(20)),
306 TxData::add(5, ":name", String("Ivan".to_string())),
307 TxData::add(5, ":age", Number(10)),
308 TxData::add(6, ":name", String("Ivan".to_string())),
309 TxData::add(6, ":age", Number(20)),
310 ];
311
312 run_cases(vec![Case {
313 description: "[:find ?e
314 :where
315 (or-join [?e]
316 [?e :name ?n]
317 (and [?e :age ?a] [?e :name ?n]))]",
318 plan: Plan::Union(Union {
319 variables: vec![0],
320 plans: vec![
321 Plan::Hector(Hector {
322 variables: vec![0],
323 bindings: vec![Binding::attribute(0, ":name", 2)],
324 }),
325 Plan::Hector(Hector {
326 variables: vec![0],
327 bindings: vec![
328 Binding::attribute(0, ":age", 1),
329 Binding::attribute(0, ":name", 2),
330 ],
331 }),
332 ],
333 }),
334 transactions: vec![data.clone()],
335 expectations: vec![vec![
336 (vec![Eid(1)], 0, 1),
337 (vec![Eid(2)], 0, 1),
338 (vec![Eid(3)], 0, 1),
339 (vec![Eid(4)], 0, 1),
340 (vec![Eid(5)], 0, 1),
341 (vec![Eid(6)], 0, 1),
342 ]],
343 }]);
344}

Callers

nothing calls this directly

Calls 1

run_casesFunction · 0.70

Tested by

no test coverage detected