()
| 441 | |
| 442 | #[test] |
| 443 | fn elementwise_three_args_order() { |
| 444 | let km = PyKernelModule::new(); |
| 445 | let a = km.arg("a"); |
| 446 | let b = km.arg("b"); |
| 447 | let c = km.arg("c"); |
| 448 | // (a + b) * c |
| 449 | let ab = PyExpr::binop_with_temp_args( |
| 450 | BinaryOp::Add, |
| 451 | &a.inner, |
| 452 | &b.inner, |
| 453 | &a.temp_args, |
| 454 | &b.temp_args, |
| 455 | ); |
| 456 | let expr = PyExpr::binop_with_temp_args( |
| 457 | BinaryOp::Mul, |
| 458 | &ab.inner, |
| 459 | &c.inner, |
| 460 | &ab.temp_args, |
| 461 | &c.temp_args, |
| 462 | ); |
| 463 | let spec = km.elementwise(expr).unwrap(); |
| 464 | assert_eq!(spec.inner.args.len(), 3); |
| 465 | // Names should be in temp_id sorted order |
| 466 | assert_eq!(spec.inner.args[0].name, "a"); |
| 467 | assert_eq!(spec.inner.args[1].name, "b"); |
| 468 | assert_eq!(spec.inner.args[2].name, "c"); |
| 469 | } |
| 470 | |
| 471 | // --- R1.7: execute_map name-based binding --- |
| 472 |
nothing calls this directly
no test coverage detected