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

Function multiple_aggregations

tests/aggregation_test.rs:491–653  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

489
490#[test]
491fn multiple_aggregations() {
492 run_cases(vec![
493 Case {
494 description:
495 "[:find (max ?amount) (min ?debt) (sum ?amount) (avg ?debt) \
496 :where [?e :amount ?amount][?e :debt ?debt]]",
497 plan: {
498 let (e, amount, debt) = (1, 2, 3);
499 Plan::Aggregate(Aggregate {
500 variables: vec![amount, debt, amount, debt],
501 plan: Box::new(Plan::Project(Project {
502 variables: vec![amount, debt],
503 plan: Box::new(Plan::Join(Join {
504 variables: vec![e],
505 left_plan: Box::new(Plan::MatchA(e, ":amount".to_string(), amount)),
506 right_plan: Box::new(Plan::MatchA(e, ":debt".to_string(), debt)),
507 })),
508 })),
509 aggregation_fns: vec![
510 AggregationFn::MAX,
511 AggregationFn::MIN,
512 AggregationFn::SUM,
513 AggregationFn::AVG,
514 ],
515 key_variables: vec![],
516 aggregation_variables: vec![amount, debt, amount, debt],
517 with_variables: vec![],
518 })
519 },
520 transactions: vec![
521 vec![
522 TxData::add(1, ":amount", Number(5)),
523 TxData::add(1, ":amount", Number(2)),
524 TxData::add(1, ":amount", Number(6)),
525 TxData::add(1, ":amount", Number(9)),
526 TxData::add(1, ":amount", Number(10)),
527 TxData::add(1, ":debt", Number(13)),
528 TxData::add(1, ":debt", Number(4)),
529 TxData::add(1, ":debt", Number(9)),
530 TxData::add(1, ":debt", Number(15)),
531 TxData::add(1, ":debt", Number(10)),
532 TxData::add(2, ":amount", Number(2)),
533 TxData::add(2, ":amount", Number(4)),
534 TxData::add(2, ":debt", Number(5)),
535 TxData::add(2, ":debt", Number(42)),
536 ],
537 ],
538 expectations: vec![
539 vec![
540 (vec![Number(10), Number(4), Number(172), Rational32(Ratio::new(349, 29))], 0, 1),
541 ],
542 ],
543 // set-semantics
544 // expectations: vec![
545 // vec![
546 // (vec![Number(10), Number(4), Number(36), Rational32(Ratio::new(14, 1))], 0, 1),
547 // ],
548 // ],

Callers

nothing calls this directly

Calls 1

run_casesFunction · 0.70

Tested by

no test coverage detected