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

   ### What changes were proposed in this PR?
   
   One configuration exercises one path through an operator. A parity run wants
   more than that: every value an enum offers, the optional knobs a default 
leaves
   empty, and a text knob carrying a value that breaks a Python literal if it 
was
   spliced rather than escaped.
   
   This adds the sweep on top of the generator that derives the configuration. 
Four
   entry points return variants: one for an operator configured from its
   annotations, and three for a hand-written fixture, which needs them more, 
since
   the configuration it pins is otherwise the only one its operator ever runs.
   
   The sweep moves one knob at a time rather than crossing them, so a failure 
names
   the knob that caused it. The exceptions are the two variants that move every
   knob of a kind at once, where bisecting by hand costs less than a run per 
field:
   all optional knobs filled together, and all free-text knobs carrying the 
hostile
   value together, numbered so no two knobs carry the same text. Two knobs 
sharing
   one value is not a smaller version of the same test. Where both name an 
output
   column, it writes the same column twice and the run fails for a reason that 
has
   nothing to do with escaping.
   
   ### Any related issues, documentation, discussions?
   
   Part of #8325, which lists the set in order. This is the second half of the
   seventeenth entry, and #8361 is the first. The two are one Scala object, so 
this
   branch carries that one's commit as well: the sweep does not compile without 
the
   members it defines. Until #8361 merges the file view here shows both halves, 
and
   once it does this narrows to the sweep on its own. The last commit is the 
sweep,
   and it is the one to read.
   
   ### How was this PR tested?
   
   Four tests read the entry points rather than the members behind them: an enum
   offered once per value with each variant labelled by the knob it moved, a
   boolean flipped in a variant of its own, an optional knob the base leaves 
empty
   and this fills, and two free-text knobs that come out holding different text.
   
   The sweep is exercised end to end once the last pieces of the set land, when
   every operator runs through the engine and through its generated script and 
the
   two answers are compared. These four cover it in the meantime, and they name 
the
   knob rather than the operator when they fail.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code (Opus 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