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]
