grid: pin every DECCARA / DECRARA selector #217

Merged
natsukium merged 1 commit from issue-209-rect-attr-vocabulary into main 2026-09-08 02:33:00 +09:00
Owner

Closes #209.

Adds four table-driven tests to crates/felis-grid/tests/snapshot_csi.rs that walk every selector AttrEdit::from_params and reverse_attr_masks map (1-9, 21, 22-29) for both DECCARA and DECRARA, plus DECCARA's own 4:n colon form (4:3 lands UnderlineStyle::Curly, 4:0 clears underline and consumes the shape argument).

Mutation check: with 2 => FAINT swapped to STRIKETHROUGH in editing.rs, the old suite stayed green and deccara_each_on_selector_sets_exactly_its_attribute now fails on selector 2.

cargo test -p felis-grid --test snapshot_csi and cargo clippy -p felis-grid --all-targets -D warnings pass.

Closes #209. Adds four table-driven tests to `crates/felis-grid/tests/snapshot_csi.rs` that walk every selector `AttrEdit::from_params` and `reverse_attr_masks` map (1-9, 21, 22-29) for both DECCARA and DECRARA, plus DECCARA's own `4:n` colon form (`4:3` lands `UnderlineStyle::Curly`, `4:0` clears underline and consumes the shape argument). Mutation check: with `2 => FAINT` swapped to `STRIKETHROUGH` in `editing.rs`, the old suite stayed green and `deccara_each_on_selector_sets_exactly_its_attribute` now fails on selector 2. `cargo test -p felis-grid --test snapshot_csi` and `cargo clippy -p felis-grid --all-targets -D warnings` pass.
grid: pin every DECCARA / DECRARA selector
Some checks failed
bench / Criterion full-suite snapshot (pull_request) Has been skipped
fuzz / cargo fuzz nightly long-run (pull_request) Has been skipped
bench / Criterion regression gate (pull_request) Failing after 2m27s
darwin / detect relevant changes (pull_request) Successful in 3s
darwin / darwin docs-only no-op (pull_request) Has been skipped
darwin / build felis (aarch64-darwin) (pull_request) Successful in 49s
fuzz / cargo fuzz smoke (per target) (pull_request) Successful in 1m33s
pr / nix flake check (pull_request) Successful in 51s
pr / cargo build / clippy / test / deny (pull_request) Successful in 2m38s
pr / wire schema is compatible with the base (pull_request) Successful in 13s
pr / frontend smoke (x86_64-linux) (pull_request) Successful in 1m45s
pr / publish felis (x86_64-linux) (pull_request) Has been skipped
windows / detect relevant changes (pull_request) Successful in 4s
windows / windows docs-only no-op (pull_request) Has been skipped
windows / cargo clippy (Windows cross) (pull_request) Successful in 26s
windows / cargo nextest (Windows) (pull_request) Successful in 5m32s
windows / frontend smoke (Windows) (pull_request) Successful in 1m54s
windows / package felis (x86_64-pc-windows-msvc) (pull_request) Has been skipped
a169056079
The rectangle attribute suites exercised only bold, underline, reverse
and the 22/24 clear pair, so a swapped or dropped arm for faint,
italic, blink, conceal, strikethrough or the remaining clear aliases
passed the full suite (checked by swapping FAINT for STRIKETHROUGH:
no test failed). Four table-driven tests now walk the whole selector
vocabulary for both operations, including DECCARA's own `4:n` colon
form, which was only pinned through DECRARA.

Closes #209.

Assisted-by: Claude Code:Fable 5.1
natsukium deleted branch issue-209-rect-attr-vocabulary 2026-09-08 02:33:00 +09:00
Sign in to join this conversation.
No description provided.