()
| 489 | |
| 490 | #[test] |
| 491 | fn 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 | // ], |
nothing calls this directly
no test coverage detected