Ticket 39: rename Chirp → Up Chirp + PR #33 fix-forward repair #34

Merged
ykp merged 1 commit from up-chirp-rename into master 2026-09-27 15:13:00 +02:00
Owner

Ticket 39 — rename waveform "Chirp" → "Up Chirp"

First ticket of the chirp-directions round (backlog 39; Down/Double chirp follow in 40/41).

Rename (no behavior change):

  • WAVEFORM_CHIRP/"Chirp" → WAVEFORM_UP_CHIRP/"Up Chirp" across model, validation, dispatch, UI policy, main window, tests and spec (§1/§2/§3/§4/§5/§7/§8)
  • Legacy JSON: "WaveformType": "Chirp" maps to "Up Chirp" on load (single funnel in _SETTERS); saves always write the current name
  • UI labels stay neutral ("Chirp duration (phase-1)") per round decision Q5

PR #33 fix-forward repair (operator-confirmed: keep the features, new limits ARE the intent):

  • fix the IndentationError in tests/test_comb.py that broke collection on master
  • new limits confirmed intentional: DURATION_MIN_US 1.0 → 0.1 µs (L4/L8) and CombOversampling (4,64) → (0,64) with k = 0 closest-nfft mode (L13) — spec L4/L8/L13 + docstrings updated
  • validation: the L13 duration rule is skipped when oversampling is out of range (the range finding fires instead of an nfft_for ValueError)
  • tests updated to the implemented PR #33 behavior: descriptive output filename (model.default_signal_filename), comb center snap to the tone-spacing grid in derive_band_status (display-only), chirp_duration spin → plain entry, chirp/comb stitching settings, iteration-cap fallback proof
  • docs: generate.py docstring + spec §5.1 document the new {prefix}_{waveform}_{fmin}-{fmax}_{dur}µs_{seed}.sig naming; spec §5.2.1/§5.2.2 cover the stitching settings + configurable guard limit; spec §7.2 documents the comb center snap; README status refreshed
  • ruff clean (wrapped long lines, import order, whitespace), mypy clean

Gate

  • pytest: 1173 passed, 63 skipped (headless tkinter tier), coverage 95.24 % (≥ 85 % required)
  • ruff check gensig tests: clean
  • mypy gensig tests: clean

Before this branch, master @ 73148fb had 1 collection error + 30 failing tests (verified on a clean checkout); this PR takes the suite fully green.

## Ticket 39 — rename waveform "Chirp" → "Up Chirp" First ticket of the chirp-directions round (backlog 39; Down/Double chirp follow in 40/41). **Rename (no behavior change):** - `WAVEFORM_CHIRP`/`"Chirp"` → `WAVEFORM_UP_CHIRP`/`"Up Chirp"` across model, validation, dispatch, UI policy, main window, tests and spec (§1/§2/§3/§4/§5/§7/§8) - **Legacy JSON**: `"WaveformType": "Chirp"` maps to `"Up Chirp"` on load (single funnel in `_SETTERS`); saves always write the current name - UI labels stay neutral (`"Chirp duration (phase-1)"`) per round decision Q5 **PR #33 fix-forward repair** (operator-confirmed: keep the features, new limits ARE the intent): - fix the `IndentationError` in `tests/test_comb.py` that broke collection on master - new limits confirmed intentional: `DURATION_MIN_US` 1.0 → **0.1 µs** (L4/L8) and `CombOversampling` `(4,64)` → **(0,64)** with `k = 0` closest-nfft mode (L13) — spec L4/L8/L13 + docstrings updated - validation: the L13 duration rule is skipped when oversampling is out of range (the range finding fires instead of an `nfft_for` `ValueError`) - tests updated to the implemented PR #33 behavior: descriptive output filename (`model.default_signal_filename`), comb center snap to the tone-spacing grid in `derive_band_status` (display-only), `chirp_duration` spin → plain entry, chirp/comb stitching settings, iteration-cap fallback proof - docs: `generate.py` docstring + spec §5.1 document the new `{prefix}_{waveform}_{fmin}-{fmax}_{dur}µs_{seed}.sig` naming; spec §5.2.1/§5.2.2 cover the stitching settings + configurable guard limit; spec §7.2 documents the comb center snap; README status refreshed - ruff clean (wrapped long lines, import order, whitespace), mypy clean ## Gate - `pytest`: **1173 passed, 63 skipped** (headless tkinter tier), coverage **95.24 %** (≥ 85 % required) - `ruff check gensig tests`: clean - `mypy gensig tests`: clean Before this branch, master @ 73148fb had 1 collection error + 30 failing tests (verified on a clean checkout); this PR takes the suite fully green.
feat(model): rename waveform Chirp -> Up Chirp (ticket 39) + repair PR #33 fallout
Some checks failed
test / test (ubuntu-latest) (pull_request) Failing after 2m33s
f276a4877b
Ticket 39 — rename the Chirp waveform type to Up Chirp:
- WAVEFORM_CHIRP/'Chirp' -> WAVEFORM_UP_CHIRP/'Up Chirp' across model,
  validation, dispatch, policy, UI, tests and spec (§1/§2/§3/§4/§5/§7/§8);
  UI labels stay neutral ('Chirp duration (phase-1)') per round decision
- legacy project JSON: WaveformType 'Chirp' maps to 'Up Chirp' on load
  (single funnel in _SETTERS; to_dict always writes the current name)
- foundation for the Down/Double chirp directions round (backlog 40/41)

PR #33 fix-forward repair (operator-confirmed; new limits ARE the intent):
- fix IndentationError in tests/test_comb.py (broke test collection)
- new limits confirmed intentional: DURATION_MIN_US 1.0 -> 0.1 µs (L4/L8)
  and CombOversampling range (4,64) -> (0,64) with k=0 closest-nfft mode
  (L13); spec L4/L8/L13 + docstrings updated to match
- guard validation's L13 duration rule against out-of-range oversampling
  (L13_OVERSAMPLING is the finding instead of an nfft_for ValueError)
- tests updated to the implemented PR #33 behavior: descriptive output
  filename (model.default_signal_filename), comb center snap to the
  tone-spacing grid in derive_band_status, chirp_duration spin -> plain
  entry, stitching settings (chirp/comb), iteration-cap fallback proof
- generate.py docstring + spec §5.1 document the new output naming rule;
  spec §5.2.1/§5.2.2 cover the stitching settings and guard-limit setting;
  spec §7.2 documents the comb center snap (display only)
- ruff clean (wrapped long lines, sorted imports, whitespace), mypy clean;
  pytest 1173 passed / 63 skipped (headless tier), coverage 95.24%
ykp merged commit 9369b92131 into master 2026-09-27 15:13:00 +02:00
Sign in to join this conversation.
No description provided.