From a07d342e3f5cfb3c4a0b51c07c1237f278573871 Mon Sep 17 00:00:00 2001 From: mgcooper Date: Fri, 18 Sep 2026 12:31:30 -0700 Subject: [PATCH 01/28] fix(baseflow): quiet the test run and draw the version it reports A desktop test run printed a graphics array for every reference-line label, warned twice about expected conditions, and opened and closed a window for each test. drawarrow assigned its output whether or not the caller asked for it, and none of the five call sites in gpfitb, plplotb and fitphidist ended with a semicolon, so each label printed its handles. The fitphi warnings carried no identifier, so nothing could suppress them. They now carry baseflow:fitphi:incompatibleLateTimeSolution and baseflow:fitphi:lateTimeSolutionImpliesB, and the tests that ask for the solution pair fitphi falls back from, or that run a fit to the iteration limit of nlinfit, suppress the warning they expect. A user still sees it. runtests draws test figures off screen for the length of the run and puts the figure default back on both exits. A figure created with an explicit 'Visible' of 'on' ignores that default, so fitphidist takes its visibility from the new private figurevisibility, which answers off whenever the root asks for invisible figures. The version banner carried the digits of 1.1.0. It now takes them from the version string, so the art cannot fall behind again. test_pointcloudplot asserted a figure position it had asked for rather than the one the window manager granted, so the supplied-axes test failed on a display. It reads the position back, the sibling position tests assert only the size, and the new test_sizefigure covers the kept position on the private helper itself. --- CHANGELOG.md | 25 +++++ docs/index.html | 2 +- tests/Contents.m | 2 + tests/test_corechain.m | 5 + tests/test_demos.m | 8 ++ tests/test_figurevisibility.m | 91 +++++++++++++++++ tests/test_getdqdt.m | 8 ++ tests/test_plotdqdt.m | 14 +-- tests/test_pointcloudplot.m | 23 +++-- tests/test_sizefigure.m | 84 ++++++++++++++++ toolbox/+baseflow/+deps/Contents.m | 2 +- toolbox/+baseflow/+internal/Contents.m | 2 +- toolbox/+baseflow/+internal/runtests.m | 95 ++++++++++++------ toolbox/+baseflow/+internal/version.m | 20 +++- toolbox/+baseflow/+util/Contents.m | 2 +- toolbox/+baseflow/Contents.m | 3 +- toolbox/+baseflow/fitphi.m | 12 +-- toolbox/+baseflow/fitphidist.m | 6 +- toolbox/+baseflow/gpfitb.m | 4 +- toolbox/+baseflow/plplotb.m | 4 +- toolbox/+baseflow/private/drawarrow.m | 14 ++- toolbox/+baseflow/private/figurevisibility.m | 48 +++++++++ toolbox/docs/html/baseflow_contents.html | 2 +- .../docs/html/baseflow_examples_contents.html | 2 +- .../docs/html/baseflow_gettingStarted.html | 2 +- .../docs/html/baseflow_powerlaw_notation.html | 2 +- .../docs/html/baseflow_theory_contents.html | 2 +- toolbox/docs/html/baseflow_welcome.html | 2 +- .../helpsearch-v4_en/store/000000000002.zap | Bin 1228772 -> 1228393 bytes .../html/helpsearch-v4_en/store/root.bolt | Bin 262144 -> 262144 bytes .../docs/html/m2html/+baseflow/Contents.html | 3 +- .../docs/html/m2html/+baseflow/fitphi.html | 12 +-- .../html/m2html/+baseflow/fitphidist.html | 6 +- .../docs/html/m2html/+baseflow/gpfitb.html | 4 +- .../docs/html/m2html/+baseflow/plplotb.html | 4 +- toolbox/docs/html/m2html/function_index.html | 2 +- 36 files changed, 424 insertions(+), 93 deletions(-) create mode 100644 tests/test_figurevisibility.m create mode 100644 tests/test_sizefigure.m create mode 100644 toolbox/+baseflow/private/figurevisibility.m diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b8396b..d6d25b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,31 @@ This file lists notable changes to the baseflow toolbox. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); the project uses semantic versioning. +## [Unreleased] + +### Fixed + +- `gpfitb`, `plplotb` and `fitphidist` print nothing when they label a + figure. The private `drawarrow` assigned its output whether or not the + caller asked for it, and no call site ended with a semicolon, so each + label printed a 1x2 graphics array. +- `baseflow.internal.version` draws the version it reports. The banner + carried the digits of 1.1.0, and it now takes them from the version + string. +- `baseflow.internal.runtests` draws test figures off screen, so a run on + the desktop opens no window for a test that closes its own figure. It + puts the figure default back on both exits. +- `fitphidist` draws its figure off screen when the root asks for + invisible figures, through the new private `figurevisibility`. A figure + created with an explicit `'Visible'` of `'on'` ignores that default, so + `showfit` true opened a window during a test run. +- The `fitphi` warnings carry identifiers, + `baseflow:fitphi:incompatibleLateTimeSolution` and + `baseflow:fitphi:lateTimeSolutionImpliesB`, so a caller can suppress or + catch one by name. The tests that ask for a solution pair `fitphi` + falls back from now suppress the warning they expect, as do the tests + that run a fit to the iteration limit of `nlinfit`. + ## [1.2.0] - 2026-09-17 ### Added diff --git a/docs/index.html b/docs/index.html index 25d1df0..c994284 100644 --- a/docs/index.html +++ b/docs/index.html @@ -9,7 +9,7 @@ Getting Started with the Baseflow Toolbox - +