146 add support for multi element channel modeling#205
Conversation
- Expand ch_file trait to ch_files list; add Add/Remove/Clear buttons and a read-only queue display so users can build a composite channel by cascading multiple S-parameter/time-domain files via skrf ** - Persist ch_files in PyBertCfg (backward-compat: falls back to ch_file when list is empty) - Fix IBISModel() calls: drop stale third positional arg that no longer exists in the updated pyibisami signature - Fix run_ami_model(): use AmiModelResponseKey constants (not plain strings) when indexing the dict returned by AMIModel.get_responses() - Add CLAUDE.md with commands, architecture, and key invariants Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The separate FileEditor browse widget is removed; clicking Add now opens a native pyface FileDialog directly and appends the chosen path to ch_files in one step. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Didn't get much time to dig deep but a few changes/comments off the cuff. I don't know if you ever tried my branch where I was removing traits and also added this feature and had sent for you to demo. Deltas from that and features worth while adding:
|
Sorry, do you mean that the user's radio button selection makes the irrelevant half disappear? |
Yes! That'd be much nicer. |
Agreed; unnecessarily verbose. |
I think I disagree here.
Let's discuss this one some more. |
Great suggestion! Okay, checkout 9d629e4 and see if you think the additional testing is sufficient. |
…tterson's suggestion.
Uses scikit-rf to construct reference transmission-line networks and verifies that cascading N s2p files via import_channel matches direct skrf cascades, including 2- and 3-segment unit tests and an end-to-end PyBERT simulation test. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Prompt used: > Test the new composite channel building functionality. Use scikit-rf to build the reference channel for testing.
…ntions. Adds TestPortRenumber with 6 tests verifying that renumber=True correctly normalises both the standard "1→2" and alternative "1→3" 4-port conventions, including negative tests (renumber=False on a 1→3 file gives Sdd21≈0) and mixed-convention cascade scenarios. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Prompt used: > Expand testing to ensure that port reordering (i.e. - renumber = True) works with a mix of both s4p port numbering conventions.
We can spilt this off in another task but exactly. It's not which it's using; you only see the one you selected. |
|
Ack on the reordering and tests! I won't be off mobile only until Monday; so might as well let Claude augment with the drag handle and remove per row. I'll try it out and review in more detail then. |
The GUI rearrangement commit replaced three Bool traits with Enum equivalents (use_ch_file→inter_sel, tx_use_ibis→tx_sel, rx_use_ibis→rx_sel) without updating PyBertCfg, breaking save_configuration and the CLI sim test. Also adds backward-compat mapping in load_from_file so old saved configs still load correctly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Updates the test to use `inter_sel = "multiple"` instead of the removed `use_ch_file = True` Bool trait, so the RuntimeError path is actually exercised. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jdpatt , when you get a chance, take the latest commit for a test drive and see if you like the new format/behavior of the channel configuration GUI better than the old way. |
Okay, I'll create a new Issue for this, as you suggest. ==> See Issue #206 |
Three IBIS-AMI fixtures in conftest.py were still using the removed Bool trait rx_use_ibis=True (silently ignored by HasTraits) instead of the new rx_sel="ibis" Enum, causing 30 tests to pass while testing the native path instead of IBIS. The test methods in all three IBIS test files were also requesting the wrong fixture (dut instead of the IBIS fixture), so they were never exercising the IBIS code path. Both problems are fixed; a test_rx_sel guard is added to each class to catch this category of regression. A leftover debug print in sparam.py is also removed. New test files cover previously untested utility modules: test_math.py (safe_log10, gaus_pdf, lfsr_bits, make_bathtub, all_combs), test_sigproc.py (resize_zero_pad, moving_average, raised_cosine, trim_impulse), test_jitter.py (find_crossing_times), test_channel.py (calc_gamma_RLGC), and test_fec.py (FEC_Encoder/FEC_Decoder round-trip). A backward-compat config loading test is added to test_loading_and_saving.py to cover the Bool→Enum mapping introduced in configuration.py on this branch. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
I turned Claude loose on this issue and I think we've got a workable first-pass solution, after some manual "adjustments" to his fix.
Still to do: