aglinxinyuan opened a new issue, #5438:
URL: https://github.com/apache/texera/issues/5438

   `amber/src/main/scala/org/apache/texera/workflow/LogicalPlan.scala` is the 
case class describing the user-facing logical workflow graph (operators + 
links). It exposes graph queries used by the compiler and persists into saved 
workflows, but has no unit test today.
   
   | Surface | Behavior to pin |
   | --- | --- |
   | Construction | `LogicalPlan(operators, links)` exposes both fields 
verbatim; case-class equality across the two fields. |
   | `LogicalPlan.apply(LogicalPlanPojo)` companion factory | Lifts a POJO's 
operators + links into a `LogicalPlan` (drops the POJO-only `opsToViewResult` / 
`opsToReuseResult` fields). |
   | `getTopologicalOpIds` | Returns operator ids in JGraphT topological order 
— pinned with a chain `A → B → C` and a fan-out `A → {B, C}`. |
   | `getOperator` | Map lookup that returns the operator with the given 
identifier; missing id throws `NoSuchElementException`. |
   | `getTerminalOperatorIds` | Returns the set of operators with out-degree 0; 
pinned for a single sink, multiple sinks, and an empty plan. |
   | `getUpstreamLinks` | Returns every `LogicalLink` whose `toOpId` matches 
the argument; preserves construction order. |
   | `resolveScanSourceOpFileName` | `Some(errorList)` collects failures 
per-operator; `None` re-throws. (Spec uses a `ScanSourceOpDesc` test fixture 
with both a resolvable and a deliberately-unresolvable file path.) |
   
   ### Priority
   P3 - Low
   
   ### Task Type
   - [x] Testing / QA


-- 
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