diff --git a/ChangeLog b/ChangeLog index 107d29f5..b8cbf96d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,9 @@ ## Interface and handling +- isolate real-browser numerical fixtures from editable GUI examples and keep + CSV export checks synchronized with selected columns and seed-end defaults + - integrate CopomuS as the browser Mutation Design task with single-pair input, native controls, extended tables and four-state vaRRI visualization (#307) @@ -23,9 +26,6 @@ - fix CopomuS explicit mutations, GC filters, signed indices, zero scores and shared profiles; validate inputs and preserve output on failure (PR #298) -- isolate real-browser numerical fixtures from editable GUI examples and cover - the complete prediction seed-coordinate CSV defaults (#310) - - --outNumberPerSeed selects each seed's best candidate sites before final deduplication, energy/overlap/count filtering; model P ranks left-most-anchor ensembles; zero preserves ordinary prediction; the GUI exposes the quota next @@ -341,8 +341,9 @@ energies, restricted partition sums, and trackers. * scripts/wasm/test-browser.py * Stop loading editable GUI examples as numerical browser-test fixtures; seed prediction, evaluation and mutation checks from explicit test-only inputs. - * Expect both seed start and end coordinates in the prediction CSV defaults, - restoring the WASM browser workflow after the GUI default changed (#310). + * Derive the expected CSV download header from the rendered result columns and + verify both seed boundaries, restoring the master WebAssembly workflow after + the GUI default changed. 261026 Alexander Mitrofanov * gui/{index.html,app.js,styles.css,copomus*.js,runner.js,sessions.js}, diff --git a/scripts/wasm/test-browser.py b/scripts/wasm/test-browser.py index 436137dd..ff2fbe38 100644 --- a/scripts/wasm/test-browser.py +++ b/scripts/wasm/test-browser.py @@ -344,7 +344,11 @@ def predict(): with page.expect_download() as downloaded: active.locator('[data-role=download]').click() csv = Path(downloaded.value.path()).read_text() - assert csv.splitlines()[0] == 'id1;start1;end1;id2;start2;end2;subseqDP;hybridDP;E;ED1;ED2;seedE;seedStart1;seedEnd1;seedStart2;seedEnd2' + result_columns = active.locator('[data-role=visible-columns] input').evaluate_all( + "inputs => inputs.map(input => input.value).filter(value => value !== 'deltaE')" + ) + assert result_columns[-4:] == ['seedStart1', 'seedEnd1', 'seedStart2', 'seedEnd2'] + assert csv.splitlines()[0].split(';') == result_columns assert 'target;1;10;query;1;10;' in csv assert 'deltaE' not in csv assert active.locator('thead th').first.inner_text() == ''