eugenegujing opened a new pull request, #7578:
URL: https://github.com/apache/texera/pull/7578

   ### What changes were proposed in this PR?
   
   The new `FriesReconfigurationAlgorithmSpec` (16 tests) pins the algorithm's 
observable behaviors through `getReconfigurations`, with positive and negative 
assertions:
   
   - scope stays limited to the reconfigured operator when no one-to-many 
operator is upstream;
   - an upstream one-to-many operator with a reconfigured descendant is pulled 
into the scope together with the connecting path, and becomes the epoch-marker 
source;
   - one-to-many operators with no reconfigured descendant, one-to-many 
operators downstream of the target, and side branches are all excluded;
   - parallel branches between a one-to-many operator and the target are all 
included (diamond);
   - disconnected closures split into separate components with per-component 
reconfiguration sets and sources, while connected reconfigured operators merge 
into one component;
   - multiple one-to-many operators converging on the target yield a single 
component with multiple marker sources;
   - links are traversed on every input port, not just port 0;
   - edge cases: single-operator region, target that is itself a region source, 
target that is itself one-to-many, multiple executing regions handled 
independently, and an empty result when no region contains a target.
   
   Fixtures build small regions with `PhysicalOp`/`PhysicalLink` wiring (the 
closure walks per-operator port links) and stub 
`WorkflowExecutionManager.getExecutingRegions`, following the patterns of 
`RegionSpec` and `WorkflowExecutionManagerSpec`. No production code is changed.
   
   ### Any related issues, documentation, discussions?
   
   Closes #7573
   
   ### How was this PR tested?
   
   This PR is itself test-only. The new spec was run with:
   
   ```
   sbt "WorkflowExecutionService/testOnly *FriesReconfigurationAlgorithmSpec"
   ```
   
   All 16 tests pass. The suite was additionally mutation-checked: four manual 
mutations of the algorithm (dropping forward-closure propagation, disabling the 
connected-component split, disabling the one-to-many pull-in, and returning 
whole components instead of intersecting with the source set) each caused 
multiple test failures, and the source was restored afterwards. `scalafmtCheck` 
passes.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Co-authored by: Claude Code (Claude Fable 5)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to