==============================================================================
PART A  -- the beta 42 formulas against SciPy (kept from verify_NormExplorer.py)
==============================================================================
  left-tail z*  alpha=0.10                                   got -1.28155     want -1.28155     ok
  left-tail area below x* = alpha (0.10)                     got 0.1          want 0.1          ok
  two-tailed: area outside = alpha (0.10)                    got 0.1          want 0.1          ok
  left-tail z*  alpha=0.05                                   got -1.64485     want -1.64485     ok
  left-tail area below x* = alpha (0.05)                     got 0.05         want 0.05         ok
  two-tailed: area outside = alpha (0.05)                    got 0.05         want 0.05         ok
  left-tail z*  alpha=0.01                                   got -2.32635     want -2.32635     ok
  left-tail area below x* = alpha (0.01)                     got 0.01         want 0.01         ok
  two-tailed: area outside = alpha (0.01)                    got 0.01         want 0.01         ok
  power mu=0 mu2=1 sigma=1 alpha=0.05                        got 0.259511     want 0.259511     ok
  power mu=0 mu2=2.5 sigma=1 alpha=0.05                      got 0.803765     want 0.803765     ok
  power mu=100 mu2=110 sigma=15 alpha=0.05                   got 0.163991     want 0.163991     ok
  power mu=100 mu2=90 sigma=15 alpha=0.01                    got 0.00138118   want 0.00138118   ok
  power N(0,1) vs mu2 = 1, alpha = .05 (textbook 0.2595)     got 0.259511     want 0.2595       ok
  bin [-0.25, 0) of N(0,1): p                                got 0.0987063    want 0.0987063    ok
  bin [-0.25, 0) of N(0,1), n = 1000: n*p                    got 98.7063      want 98.7063      ok
  trapezoid S-curve cache, worst error over the 273 columns
    N(0,1) on [-4, 4]: 1.75e-05  (= 0.00 px)  ok
    N(0,1) on [-6, 6]: 3.92e-05  (= 0.01 px)  ok
    N(100,15) on [40, 160]: 1.75e-05  (= 0.00 px)  ok
    N(2,1) on [-6, 6]: 3.92e-05  (= 0.01 px)  ok
    N(0,1) on [-30, 30]: 9.73e-04  (= 0.14 px)  ok
    N(0,1) on [-100, 100]: 1.03e-02  (= 1.47 px)  ok
  density digits for 0.24197 -> 3 (shows 0.242)              ok
  density digits for 0.0266 -> 4 (shows 0.0266)              ok
  density digits for 1.99 -> 3 (shows 1.990)                 ok
  density digits for 0.0004 -> 6 (shows 0.000400)            ok
  density digits for 0.00266 -> 5 (shows 0.00266)            ok

==============================================================================
PART B  -- the PPL itself, in the kit interpreter (kept; now on beta 42a)
==============================================================================
B1  Probability from x on N(100,15): panel, sweep, final view
    type 1: NE_P                                             got 0.747507     want 0.747507     ok
    type 1: final readout "P(X < x₀) ="                      got 0.7475       want 0.747507     ok
    type 1: sweep drew 9 frames before the final one (9)     ok
    type 1: running area rises frame by frame to the answer  ok
    type 1: a riding tag with the area (['0.7475'])          ok
    type 1: result footer "tap plot = explore, any key = menu" ok
    type 1: z-ruler row at y = 205: ['z', '-3', '-2', '-1', '0', '1', '2', '3'] ok
    type 1: lowest label row starts at y = 205 (< 207, so it ends above 218) ok
    type 2: NE_P                                             got 0.252493     want 0.252493     ok
    type 2: final readout "P(X > x₀) ="                      got 0.2525       want 0.252493     ok
    type 2: sweep drew 9 frames before the final one (9)     ok
    type 2: running area rises frame by frame to the answer  ok
    type 2: a riding tag with the area (['0.2525'])          ok
    type 2: result footer "tap plot = explore, any key = menu" ok
    type 2: z-ruler row at y = 205: ['z', '-3', '-2', '-1', '0', '1', '2', '3'] ok
    type 2: lowest label row starts at y = 205 (< 207, so it ends above 218) ok
    type 3: NE_P                                             got 0.682689     want 0.682689     ok
    type 3: final readout "P(a < X < b) ="                   got 0.6827       want 0.682689     ok
    type 3: sweep drew 9 frames before the final one (9)     ok
    type 3: running area rises frame by frame to the answer  ok
    type 3: a riding tag with the area (['0.6827'])          ok
    type 3: result footer "tap plot = explore, any key = menu" ok
    type 3: z-ruler row at y = 205: ['z', '-3', '-2', '-1', '0', '1', '2', '3'] ok
    type 3: lowest label row starts at y = 205 (< 207, so it ends above 218) ok
    type 4: NE_P                                             got 0.317311     want 0.317311     ok
    type 4: final readout "P(outside) ="                     got 0.3173       want 0.317311     ok
    type 4: sweep drew 9 frames before the final one (9)     ok
    type 4: running area rises frame by frame to the answer  ok
    type 4: two riding tags, one per tail (['0.1587', '0.1587']) ok
    type 4: left tail tag                                    got 0.1587       want 0.158655     ok
    type 4: result footer "tap plot = explore, any key = menu" ok
    type 4: z-ruler row at y = 205: ['z', '-3', '-2', '-1', '0', '1', '2', '3'] ok
    type 4: lowest label row starts at y = 205 (< 207, so it ends above 218) ok
  B1  a key during the sweep skips it (1 sweep frames drawn) ok
B2  x from probability on N(100,15)
    item 1: NE_X                                             got 119.223      want 119.223      ok
    item 1: shading mode 1 (got 1)                           ok
      panel: Score at a percentile | area left = 0.9000 | z* = 1.2816 | x = 119.2233 | 90.0% of the distribution falls below x
    item 2: NE_X                                             got 124.673      want 124.673      ok
    item 2: shading mode 2 (got 2)                           ok
      panel: Right-tail critical value | α = 0.0500 | z* = 1.6449 | x* = 124.6728 | One-tailed reject region is x > x*
    item 3: NE_X                                             got 75.3272      want 75.3272      ok
    item 3: shading mode 1 (got 1)                           ok
      panel: Left-tail critical value | α = 0.0500 | z* = -1.6449 | x* = 75.3272 | One-tailed reject region is x < x*
    item 3: z* (left tail, negative)                         got -1.64485     want -1.64485     ok
    item 3: panel z*                                         got -1.6449      want -1.64485     ok
    item 4: NE_X                                             got 129.399      want 129.399      ok
    item 4: shading mode 4 (got 4)                           ok
      panel: Two-tailed critical values | α = 0.0500  (0.0250 per tail) | z* = ± 1.9600 | x* = 70.6005 and 129.3995 | Reject region: x < lower or x > upper
    item 4: lower bound NE_XO                                got 70.6005      want 70.6005      ok
    item 4: each tail tagged 0.0250 (['0.0250', '0.0250'])   ok
    item 4: P(outside) readout = alpha                       got 0.05         want 0.05         ok
    item 5: NE_X                                             got 129.399      want 129.399      ok
    item 5: shading mode 3 (got 3)                           ok
      panel: Central 95.0% interval | z* = ± 1.9600 | lower = 70.6005   upper = 129.3995 | interval: (70.601, 129.399) | Middle 95.0% of the distribution; each tail 2.50%
B3  Z-formula solver
    item 1: NE_Z                                             got 2            want 2            ok
    item 2: NE_X                                             got 77.5         want 77.5         ok
    item 3: NE_MU                                            got 100          want 100          ok
    item 4: NE_SG                                            got 15           want 15           ok
B4  Compare curves: power picture, N(0,1) vs mu2 = 1
    power readout on the plot                                got 0.2595       want 0.259511     ok
    NE_P = power                                             got 0.259511     want 0.259511     ok
    light-green power columns drawn (68)                     ok
    every power column lies right of x* (pixel 208)          ok
      panel: Power picture | α = 0.0500   x* = 1.6449 | μ₂ = 1.0000   d = 1.000 | power = 0.2595 | β = 0.7405: curve 2 left of x*
B5  Explorer on N(0,1)
    mode kept as "between" after every drag (NE_XM = 3)      ok
    bounds after the swap: a                                 got 1.98529      want 1.98529      ok
    bounds after the swap: b                                 got 3            want 3            ok
      frames drawn: 11, DRAWMENU calls: 11
    DRAWMENU after every frame                               ok
    no footer at y = 226 in the Explorer                     ok
    final "area between" readout                             got 0.0222       want 0.022206     ok
    mu dragged to ~1.1 then snapped to the 0.2 step -> 1.0   got 1            want 1            ok
    sigma dragged out by ~1 then snapped to the 0.1 step -> 2.0 got 2            want 2            ok
    y-scale refitted for the new sigma (mean line [(196.0, 187.0, 196.0, 97.0, 15738.0)]) ok
    on exit the menu window refits: NE_YMX = 1.15 x peak     got 0.229392     want 0.229392     ok
    the hint line names the held parameter while dragging (6 frames) ok
    the held line is drawn thick                             ok
    Bands toggled off (NE_CFG(1) = 0)                        ok
    Ref cycled 1 -> 2 -> 0 -> 1 (NE_CFG(2) = 1)              ok
    Shade cycled 0 -> 1 -> 2 -> 3 -> 4 -> 0 (NE_XM = 0)      ok
      shading by frame: ------LRBO---
    Shade passed through left, right, between, outside       ok
    Hist with no histogram says so                           ok
      density line: ['height 0.242 (density,']
    "height ... (density," printed in the Explorer           ok
    the CDF S-curve was drawn while Ref = CDF (1 frames)     ok
    page 2, Bnd A, two Rights: lower bound                   got -0.8         want -0.8         ok
    Bnd B, one Left: upper bound                             got 0.9          want 0.9          ok
    Bnd B tapped again = default: Right moves mu             got 0.2          want 0.2          ok
    sigma chosen: Right widens sigma                         got 1.1          want 1.1          ok
    the mode stayed "between" (NE_XM = 3)                    ok
    page 2 labels drawn: ['Bnd A', 'Bnd B', 'mu', 'sigma', 'Menu', 'More'] ok
    page 1 has More in slot 6: ['Bands', 'Ref', 'Centre', 'Shade', 'Hist', 'More'] ok
    status line says "arrows move: lower bound"              ok
    the chosen bound is drawn thick (3 frames)               ok
B6  Data module: D1 histogram, a tapped bar
    a frame shows the bar panel                              ok
       bin 17: 45 observed, 39.5 expected (n×p)
    bin index is the one tapped (17)                         ok
    observed count                                           got 45           want 45           ok
    expected count n*p                                       got 39.5         want 39.4825      ok
    bars are filled RECT_P with a green edge (23)            ok
    footer mentions bars: ['tap bar = counts, tap plot = explore, any key = menu'] ok
    a tap on the plot entered the Explorer (DRAWMENU seen)   ok
    ...with the right-tail shading kept (NE_XM = 2)          ok
B7  CDF overlay, N(0,1), left tail at x = 1
    CDF(x0) readout                                          got 0.8413       want 0.841345     ok
    S-curve cache, worst error vs SciPy                      got 1.74822e-05  want 0            ok
    dotted drop line drawn (26 pixels)                       ok
B8  Animation, help, window menu, a full session
    standardize animation ran (22 frames)                    ok
    three help pages composed on G1 (3)                      ok
    window & display item 1 ran                              ok
    window & display item 2 ran                              ok
    window & display item 3 ran                              ok
    window & display item 4 ran                              ok
    window & display item 5 ran                              ok
    window & display item 6 ran                              ok
    window & display item 7 ran                              ok
    window & display item 8 ran                              ok
    window & display item 9 ran                              ok
      NormExp returned: NormExp: z = 1.6449, x = 124.6728, p = 0.2595
    NormExp ran a whole session and returned its summary     ok

PARTS A-B (the beta 42 verify, every check kept, run on beta 42a): 135 checks, 0 failures

==============================================================================
PART C  -- the review's regression tests, on beta 42 and on beta 42a
==============================================================================
  check_NormExplorer.py on beta 42 : 62 checks, 3 failures ['B1: no scientific form on the panel or the view', "B2: no scientific form in the Explorer's area readout", 'B3: outermost bin panel prints p and n*p in fixed form']
  check_NormExplorer.py on beta 42a: 62 checks, 0 failures 
  C1  beta 42 fails exactly the review's three regression asserts (B1, B2, B3) ok
  C2  beta 42a passes all of check_NormExplorer.py (62 checks, 0 failures) ok
     42a panel lines: ['z = 5.3333', 'P(X > x) < 0.0001', 'Complement: P(X < x) = 1.0000', 'P(X > x₀) < 0.0001']
     42a readout lines: ['x₀ = 180.00  z = 5.33', 'P(X > x₀) < 0.0001']
     42a area readouts during the drag: ['area to the left = 0.0668', 'area to the left < 0.0001', 'area to the left < 0.0001', 'area to the left < 0.0001']
     42a tapped bin 8: ['bin 8: 1 observed, 2.1 expected (n×p)', 'x from 66.25 to 70.00,  p = 0.0105']
     42a tapped bin 1 (forced count 1, n = 200): ['bin 1: 1 observed, < 0.1 expected (n×p)', 'x from 40.00 to 43.75,  p = 0.0001']
  check_NormExplorer_python.py on beta 42 : 6 runs, 0 failures
  check_NormExplorer_python.py on beta 42a: 6 runs, 0 failures
  C3  the #PYTHON block passes the CPython check on beta 42a (6 runs, 0 failures) ok
  C4  ... and gives exactly beta 42's six results (the block is unchanged) ok

==============================================================================
PART D1 -- D-NE-1: fixed decimals that stay fixed (ppl_run_v3e, home_minus=True)
==============================================================================
  beta 42  ['P(X > x) = 4.8213ᴇ−8', 'Complement: P(X < x) = 1.0000', 'P(X > x₀) = 2.1356ᴇ−9', 'P(X > x₀) = 4.8213ᴇ−8', 'P(X > x)    right tail']   sci_strings ['4.8213ᴇ-8', '2.1356ᴇ-9', '4.8213ᴇ-8']
  D1a beta 42 prints "P(X > x) = 4.8213ᴇ−8" (the review's reproduction) ok
  beta 42a ['P(X > x) < 0.0001', 'Complement: P(X < x) = 1.0000', 'P(X > x₀) < 0.0001', 'P(X > x₀) < 0.0001', 'P(X > x)    right tail']   sci_strings []
  D1a beta 42a prints "P(X > x) < 0.0001" on the panel and the view ok
  D1a beta 42a: no small-capital E anywhere, h.sci_strings empty ok
  D1a NE_P keeps every digit (SciPy sf)                      got 4.8213e-08   want 4.8213e-08   ok
  D1b ne_Fx(0.096, 1) = '0.1' (got '0.1')                    ok
  D1b ne_Fx(0.0004, 3) = '0.000' (got '0.000')               ok
  D1b ne_Fx(-4e-05, 4) = '0.0000' (got '0.0000')             ok
  D1b ne_Fx(-2.5, 2) = '−2.50' (got '−2.50')                 ok
  D1b ne_Fx(123.457, 4) = '123.4568' (got '123.4568')        ok
  D1b ne_Fx(1e-09, 4) = '0.0000' (got '0.0000')              ok
  D1b ne_Fx(0, 3) = '0.000' (got '0.000')                    ok
  D1b ne_Fx(3, 0) = '3' (got '3')                            ok
  D1b ne_Fx(-3, 0) = '−3' (got '−3')                         ok
  D1b ne_Fx(5e-05, 4) = '0.0001' (got '0.0001')              ok
  D1b ne_Fx(-0.004, 2) = '0.00' (got '0.00')                 ok
  D1b ne_Fx(1e+11, 1) = '100000000000' (got '100000000000')  ok
  D1b ne_PStr(4.8213e-08, 4) = '< 0.0001' (got '< 0.0001')   ok
  D1b ne_PStr(4.999e-05, 4) = '< 0.0001' (got '< 0.0001')    ok
  D1b ne_PStr(5e-05, 4) = '0.0001' (got '0.0001')            ok
  D1b ne_PStr(0, 4) = '0.0000' (got '0.0000')                ok
  D1b ne_PStr(-1e-13, 4) = '0.0000' (got '0.0000')           ok
  D1b ne_PStr(0.011, 1) = '< 0.1' (got '< 0.1')              ok
  D1b ne_PStr(0.004, 2) = '< 0.01' (got '< 0.01')            ok
  D1b ne_PStr(7.9e-09, 6) = '< 0.000001' (got '< 0.000001')  ok
  D1b ne_PStr(0.5, 4) = '0.5000' (got '0.5000')              ok
  D1b ne_PStr(1, 4) = '1.0000' (got '1.0000')                ok
  D1b ne_PStr(1, 4) = '1.0000' (got '1.0000')                ok
  D1b ne_PStr(1e-300, 4) = '< 0.0001' (got '< 0.0001')       ok
  D1b ne_PStr(0.0004, 3) = '< 0.001' (got '< 0.001')         ok
  D1b ne_PStr(15, 2) = '15.00' (got '15.00')                 ok
  D1b ne_Eq('0.5000') = ' = 0.5000'                          ok
  D1b ne_Eq('< 0.0001') = ' < 0.0001'                        ok
  D1b ne_Eq('') = ' = '                                      ok
  D1b ne_Eq('−1.00') = ' = −1.00'                            ok
  D1b the helpers never print scientific (h.sci_strings empty) ok
  right tail x = 180                     beta 42  sci 3  ['P(X > x) = 4.8213ᴇ−8', 'P(X > x)    right tail']
  right tail x = 180                     beta 42a sci 0  ['P(X > x) < 0.0001', 'P(X > x)    right tail']
  D1c right tail x = 180: beta 42 printed scientific (3), beta 42a none ok
  D1c right tail x = 180: beta 42a has no small-capital E, "= <" or negative zero ok
  Explorer, x0 dragged to the left edge  beta 42  sci 5  ['area to the left = 1.2934ᴇ−9', 'height 7.909464ᴇ−9 (density,']
  Explorer, x0 dragged to the left edge  beta 42a sci 0  ['area to the left < 0.0001', 'height < 0.000001 (density,']
  D1c Explorer, x0 dragged to the left edge: beta 42 printed scientific (5), beta 42a none ok
  D1c Explorer, x0 dragged to the left edge: beta 42a has no small-capital E, "= <" or negative zero ok
  outermost bar tapped                   beta 42  sci 2  ['bin 1: 1 observed, 1.1ᴇ−2 expected (n×p)', 'x from 40.00 to 43.75,  p = 5.6746ᴇ−5']
  outermost bar tapped                   beta 42a sci 0  ['bin 1: 1 observed, < 0.1 expected (n×p)', 'x from 40.00 to 43.75,  p = 0.0001']
  D1c outermost bar tapped: beta 42 printed scientific (2), beta 42a none ok
  D1c outermost bar tapped: beta 42a has no small-capital E, "= <" or negative zero ok
  percentile at area 1E-9                beta 42  sci 4  ['area left = 1.0000ᴇ−9', '1.0ᴇ−7% of the distribution falls below x']
  percentile at area 1E-9                beta 42a sci 0  ['area left < 0.0001', '< 0.1% of the distribution falls below x']
  D1c percentile at area 1E-9: beta 42 printed scientific (4), beta 42a none ok
  D1c percentile at area 1E-9: beta 42a has no small-capital E, "= <" or negative zero ok
  central C = 0.9999                     beta 42  sci 1  ['Middle 100.0% of the distribution; each tail 5.00ᴇ−3%']
  central C = 0.9999                     beta 42a sci 0  ['Middle 100.0% of the distribution; each tail < 0.01%']
  D1c central C = 0.9999: beta 42 printed scientific (1), beta 42a none ok
  D1c central C = 0.9999: beta 42a has no small-capital E, "= <" or negative zero ok
  S1 Probability from x: 180 runs on beta 42a
  D1d percentile 1E-9: "area left < 0.0001" and "< 0.1% of the distribution falls below x" ok
  D1d two tails, alpha 1E-9: "α < 0.0001  (< 0.0001 per tail)" ok
  D1d central C = 1E-6: "Central < 0.1% interval" and "each tail 50.00%" ok
  D1d central C = 1E-6: "Central < 0.1% interval" and "each tail 50.00%" ok
  S2 x from probability: 207 runs so far
  D1d z-solver, sigma 1E-5: "σ < 0.0001" and ")/< 0.01" (never 0.0000 or E) ok
  D1d z-solver, sigma -5E-6: "These values give σ = 0.0000, ..." (signed: ne_Fx, no minus on zero) ok
  S3 z-solver: 217 runs so far
  D1d power picture, mu2 = 1E-7: "d = 0.000" (a signed value rounds to 0) ok
  D1d power picture, mu2 = -10: "power < 0.0001" on the panel and the plot ok
  D1d power picture, mu2 = 15: "β < 0.0001: curve 2 left of x*" ok
  D1d second curve at mu2 = 1E-7: the plot reads "d = 0.00"  ok
  D1d window panel, sigma 1E5: "y top < 0.0001   peak < 0.0001" ok
  D1d diagnostics, sigma 0.001: "  N(0.00, < 0.01) ..."      ok
  D1d window panel, width 0.0001: "width < 0.001  < 0.01 σ"  ok
  D1d D2 message, s = 1E-8: "..., s < 0.0001"                ok
  D1d Explorer, right tail at 4.5 sigma: "area to the right < 0.0001" and "height 0.000016 (density," ok
  D1d Explorer with the S-curve: "CDF(a) < 0.0001" and "CDF(b) = 1.0000" ok
  D1d Explorer, sigma 0.001: "σ < 0.01" and the bands "68.27%: 0.00…0.00" ok
  D1d bar 1 under a curve 10 sigma away: "3 observed, < 0.1 expected" and "p < 0.0001" ok
  D1d NormExp returns "NormExp: z = 8.0000, x = 220.0000, p < 0.0001" (got 'NormExp: z = 8.0000, x = 220.0000, p < 0.0001') ok
  D1d ... and NE_P in Home keeps the number (SciPy sf, 1E-9 relative) ok
  the sweep: 244 runs on beta 42a, 17645 texts seen; the same 244 runs on beta 42 printed 1422 scientific strings
  D1d no small-capital E in any of the 17645 texts beta 42a showed ok
  D1d no "= <" anywhere (ne_Eq)                              ok
  D1d no negative zero anywhere ("−0.0000")                  ok
  D1d every probability on the Probability-from-x panels and final views (3 lines a run) within half a last digit of SciPy, "< 0.0001" exactly when positive and rounding to zero; NE_P = SciPy to 1E-12 (0 offenders) ok
  D1d the same runs on beta 42 printed the scientific form (1422 strings): the sweep can see it ok
  D1d "between" far right of mu (8..10 and 9..12 sigma) is right too: ne_Btw mirrors it (0 wrong lines) ok

==============================================================================
PART D2 -- D-NE-2: right tails as lower tails, with the Prime's 12 digits modelled
==============================================================================
  D2  the model is on: NORMALD_CDF(0, 1, 8) is exactly 1 (so 1 - CDF = 0); NORMALD_CDF(0, 1, -8) = 6.22096057427E-16 ok
  right tail on N(100, 15): NE_P (beta 42 = 1 - CDF; beta 42a = the mirrored lower tail) against SciPy
    z = 5.3333  true 4.8222e-08   beta 42 4.8222e-08 P(X > x) = 4.8222ᴇ−8 beta 42a 4.8222e-08 P(X > x) < 0.0001
  D2  z = 5.3333: beta 42a NE_P = SciPy sf (12-digit relative) got 4.82219e-08  want 4.82219e-08  ok
    z = 6       true 9.8659e-10   beta 42 9.8700e-10 P(X > x) = 9.8700ᴇ−10 beta 42a 9.8659e-10 P(X > x) < 0.0001
  D2  z = 6: beta 42a NE_P = SciPy sf (12-digit relative)    got 9.86588e-10  want 9.86588e-10  ok
    z = 7       true 1.2798e-12   beta 42 9.9998e-13 P(X > x) = 9.9998ᴇ−13 beta 42a 1.2798e-12 P(X > x) < 0.0001
  D2  z = 7: beta 42a NE_P = SciPy sf (12-digit relative)    got 1.27981e-12  want 1.27981e-12  ok
    z = 8       true 6.2210e-16   beta 42 0.0000e+00 P(X > x) = 0.0000    beta 42a 6.2210e-16 P(X > x) < 0.0001
  D2  z = 8: beta 42a NE_P = SciPy sf (12-digit relative)    got 6.22096e-16  want 6.22096e-16  ok
  D2  z = 8: beta 42 NE_P was exactly 0 (the bug), beta 42a positive ok
    z = 9       true 1.1286e-19   beta 42 0.0000e+00 P(X > x) = 0.0000    beta 42a 1.1286e-19 P(X > x) < 0.0001
  D2  z = 9: beta 42a NE_P = SciPy sf (12-digit relative)    got 1.12859e-19  want 1.12859e-19  ok
  D2  z = 9: beta 42 NE_P was exactly 0 (the bug), beta 42a positive ok
    z = 12      true 1.7765e-33   beta 42 0.0000e+00 P(X > x) = 0.0000    beta 42a 1.7765e-33 P(X > x) < 0.0001
  D2  z = 12: beta 42a NE_P = SciPy sf (12-digit relative)   got 1.77648e-33  want 1.77648e-33  ok
  D2  z = 12: beta 42 NE_P was exactly 0 (the bug), beta 42a positive ok
  left tail at z = 8, its complement: {'beta 42': (['Complement: P(X > x) = 0.0000'], 1.0), 'beta 42a': (['Complement: P(X > x) < 0.0001'], 1.0)}
  D2  left-tail panel at z = 8: "Complement: P(X > x) < 0.0001" (beta 42: 0.0000) ok
  right tail at z = -8, its complement: {'beta 42': (['Complement: P(X < x) = 6.6613ᴇ−16'], 0.9999999999999993), 'beta 42a': (['Complement: P(X < x) < 0.0001'], 1.0)}
  D2  right-tail panel at z = -8: "Complement: P(X < x) < 0.0001" (read directly as the lower tail) ok
  outside -8..8 sigma: {'beta 42': (['P(outside) = 6.6613ᴇ−16', 'P(outside) = 0.0000', 'P(outside) = 6.6613ᴇ−16'], 6.661338147750939e-16), 'beta 42a': (['P(outside) < 0.0001', 'P(outside) < 0.0001', 'P(outside) < 0.0001'], 1.244192114854e-15)}
  D2  outside -8..8 sigma: beta 42a NE_P = 2 Phi(-8)         got 1.24419e-15  want 1.24419e-15  ok
  D2  ... "P(outside) < 0.0001"; beta 42's 1 - (F(b) - F(a)) is off by more than 10% even in double arithmetic (6.661338147750939e-16; the Prime: 0) ok
  D2  between -8..8 sigma: "Outside area < 0.0001" (beta 42: 1 - pcP) ok
  power, mu2 = -8: {'beta 42': (['power = 0.0000', 'power = 0.0000', 'power = 0.0000'], 0.0), 'beta 42a': (['power < 0.0001', 'power < 0.0001', 'power < 0.0001'], 2.58424385419e-22)} true 2.5842e-22
  D2  power picture, mu2 = -8: beta 42a NE_P = power (SciPy) got 2.58424e-22  want 2.58424e-22  ok
  D2  ... "power < 0.0001" on the panel and the plot (beta 42: NE_P 0.0) ok
  beta, mu2 = 12: {'beta 42': (['β = 0.0000: curve 2 left of x*'], 1.0), 'beta 42a': (['β < 0.0001: curve 2 left of x*'], 1.0)}
  D2  power picture, mu2 = 12: "β < 0.0001" (beta 42: "β = 0.0000") ok
  right tail at 8 sigma, a custom window 7..10 (the riding tag): {'beta 42': (['P(X > x₀) = 0.0000'], ['0.0000']), 'beta 42a': (['P(X > x₀) < 0.0001'], ['< 0.0001'])}
  D2  right tail at 8 sigma, a custom window 7..10 (the riding tag): beta 42a reads "P(X > x₀) < 0.0001" and its tag "< 0.0001" (beta 42: 0.0000) ok
  outside -8..8, a custom window 5..12 (the right tail's tag): {'beta 42': (['P(outside) = 6.6613ᴇ−16'], ['0.0000']), 'beta 42a': (['P(outside) < 0.0001'], ['< 0.0001'])}
  D2  outside -8..8, a custom window 5..12 (the right tail's tag): beta 42a reads "P(outside) < 0.0001" and its tag "< 0.0001" (beta 42: the tag 0.0000) ok
  the power readout, mu2 = -8, x* = 1.6449: {'beta 42': (['power = 0.0000'], ['0.0500']), 'beta 42a': (['power < 0.0001'], ['0.0500'])}
  D2  the power readout, mu2 = -8, x* = 1.6449: beta 42a reads "power < 0.0001" (beta 42: 0.0000) ok
  D2  the 12-digit model is off again                        ok

==============================================================================
PART D3 -- D-NE-3: the CHOOSE idiom
==============================================================================
  D3  beta 42a: 8 CHOOSE calls (the 7 menus and the main menu), none assigned (8) ok
  D3  line 1622 CHOOSE(swT, ...): index set to 0 before, only the index tested after ok
  D3  line 1706 CHOOSE(pcT, ...): index set to 0 before, only the index tested after ok
  D3  line 1817 CHOOSE(icT, ...): index set to 0 before, only the index tested after ok
  D3  line 2036 CHOOSE(zsT, ...): index set to 0 before, only the index tested after ok
  D3  line 2155 CHOOSE(c2T, ...): index set to 0 before, only the index tested after ok
  D3  line 2219 CHOOSE(hsT, ...): index set to 0 before, only the index tested after ok
  D3  line 2237 CHOOSE(hsN, ...): index set to 0 before, only the index tested after ok
  D3  line 2856 CHOOSE(mnPick, ...): index set to 0 before, only the index tested after ok
  D3  hsN is set to 0 before its CHOOSE (the nested one)     ok
  D3  swSel, pcSel, icSel, zsSel, c2Sel and hsSel are gone   ok
  D3  Esc in ne_SetWin: CHOOSE shown 1 time(s), then nothing (no form, message, plot or change); as beta 42 ok
  D3  Esc in ne_ProbCalc: CHOOSE shown 1 time(s), then nothing (no form, message, plot or change); as beta 42 ok
  D3  Esc in ne_InvCalc: CHOOSE shown 1 time(s), then nothing (no form, message, plot or change); as beta 42 ok
  D3  Esc in ne_ZSolve: CHOOSE shown 1 time(s), then nothing (no form, message, plot or change); as beta 42 ok
  D3  Esc in ne_Compare2: CHOOSE shown 1 time(s), then nothing (no form, message, plot or change); as beta 42 ok
  D3  Esc in ne_Histo: CHOOSE shown 1 time(s), then nothing (no form, message, plot or change); as beta 42 ok
  D3  Esc in ne_Histo (Simulate, then Esc): CHOOSE shown 2 time(s), then nothing (no form, message, plot or change); as beta 42 ok

==============================================================================
PART D4 -- D-NE-4: central C = 1 means 1%
==============================================================================
  C = 1     beta 42: (0.0, [['Central proportion must be between 0 and 1.']])   beta 42a: (0.01, [])
  D4  C = 1: NE_P = 0.01                                     got 0.01         want 0.01         ok
  D4  C = 1: upper end = mu + z sigma (SciPy)                got 100.188      want 100.188      ok
  D4  C = 1: the panel says "Central 1.0% interval" (beta 42 refused it) ok
  C = 100   beta 42: (0.0, [['Central proportion must be between 0 and 1.']])   beta 42a: (0.0, [['Central proportion must be between 0 and 1.']])
  D4  C = 100 refused with a message, in both                ok
  C = 95    beta 42: (0.95, [])   beta 42a: (0.95, [])
  D4  C = 95: NE_P = 0.95                                    got 0.95         want 0.95         ok
  D4  C = 95: upper end = mu + z sigma (SciPy)               got 129.399      want 129.399      ok
  D4  C = 95: as beta 42                                     got 0.95         want 0.95         ok
  C = 0.95  beta 42: (0.95, [])   beta 42a: (0.95, [])
  D4  C = 0.95: NE_P = 0.95                                  got 0.95         want 0.95         ok
  D4  C = 0.95: upper end = mu + z sigma (SciPy)             got 129.399      want 129.399      ok
  D4  C = 0.95: as beta 42                                   got 0.95         want 0.95         ok
  C = 99.9  beta 42: (0.9990000000000001, [])   beta 42a: (0.9990000000000001, [])
  D4  C = 99.9: NE_P = 0.999                                 got 0.999        want 0.999        ok
  D4  C = 99.9: upper end = mu + z sigma (SciPy)             got 149.358      want 149.358      ok
  D4  C = 99.9: as beta 42                                   got 0.999        want 0.999        ok
  C = 0.5   beta 42: (0.5, [])   beta 42a: (0.5, [])
  D4  C = 0.5: NE_P = 0.5                                    got 0.5          want 0.5          ok
  D4  C = 0.5: upper end = mu + z sigma (SciPy)              got 110.117      want 110.117      ok
  D4  C = 0.5: as beta 42                                    got 0.5          want 0.5          ok

==============================================================================
PART D5 -- D-NE-5: the Explorer's arrow steps refit after a sigma drag
==============================================================================
  sigma drag 15 -> 2, then Esc                    beta 42 mu, sigma = (100.0, 2.0)   beta 42a = (100.0, 2.0)
  D5  then Esc: beta 42a mu, sigma = (100.0, 2.0) (beta 42: (100.0, 2.0)) ok
  sigma drag 15 -> 2, then Right+Esc              beta 42 mu, sigma = (105.0, 2.0)   beta 42a = (100.5, 2.0)
  D5  then Right+Esc: beta 42a mu, sigma = (100.5, 2.0) (beta 42: (105.0, 2.0)) ok
  sigma drag 15 -> 2, then Right+Up+Esc           beta 42 mu, sigma = (105.0, 4.0)   beta 42a = (100.5, 2.2)
  D5  then Right+Up+Esc: beta 42a mu, sigma = (100.5, 2.2) (beta 42: (105.0, 4.0)) ok
  sigma drag 15 -> 2, then Left+Down+Esc          beta 42 mu, sigma = (95.0, 2.0)   beta 42a = (99.5, 1.8)
  D5  then Left+Down+Esc: beta 42a mu, sigma = (99.5, 1.8) (beta 42: (95.0, 2.0)) ok

==============================================================================
PART D6 -- between, mirrored (ne_Btw), with the Prime's 12 digits modelled
==============================================================================
  D6  the model is on: NORMALD_CDF(0, 1, 9) is exactly 1; NORMALD_ICDF(0, 1, 1 - 1E-13) is NORMALD_ICDF(0, 1, 1), which stops the program ok
  D6  ... (the ICDF at a rounded 1 does stop it)             ok
  between 9..12 sigma: true 1.1286e-19  beta 42 (0.0, ['P(a < X < b) = 0.0000'], ['P(a < X < b) = 0.0000'])  beta 42a (1.1285884059499822e-19, ['P(a < X < b) < 0.0001'], ['P(a < X < b) < 0.0001'])
  D6  between 9..12 sigma: beta 42a NE_P = SciPy (12-digit relative) got 1.12859e-19  want 1.12859e-19  ok
  D6  ... panel and view read "P(a < X < b) < 0.0001"; beta 42 had NE_P 0 and "= 0.0000" ok
  between 8..10 sigma: true 6.2210e-16  beta 42 (0.0, ['P(a < X < b) = 0.0000'], ['P(a < X < b) = 0.0000'])  beta 42a (6.22096049807147e-16, ['P(a < X < b) < 0.0001'], ['P(a < X < b) < 0.0001'])
  D6  between 8..10 sigma: beta 42a NE_P = SciPy (12-digit relative) got 6.22096e-16  want 6.22096e-16  ok
  D6  ... panel and view read "P(a < X < b) < 0.0001"; beta 42 had NE_P 0 and "= 0.0000" ok
  between 2..3 sigma: true 2.1400e-02  beta 42 (0.02140023391599999, ['P(a < X < b) = 0.0214'], ['P(a < X < b) = 0.0214'])  beta 42a (0.02140023391657, ['P(a < X < b) = 0.0214'], ['P(a < X < b) = 0.0214'])
  D6  between 2..3 sigma: beta 42a NE_P = SciPy (12-digit relative) got 0.0214002    want 0.0214002    ok
  D6  ... an ordinary area is beta 42's to the last digit    got 0.0214002    want 0.0214002    ok
  between -3..-2 sigma: true 2.1400e-02  beta 42 (0.02140023391657, ['P(a < X < b) = 0.0214'], ['P(a < X < b) = 0.0214'])  beta 42a (0.02140023391657, ['P(a < X < b) = 0.0214'], ['P(a < X < b) = 0.0214'])
  D6  between -3..-2 sigma: beta 42a NE_P = SciPy (12-digit relative) got 0.0214002    want 0.0214002    ok
  D6  ... an ordinary area is beta 42's to the last digit    got 0.0214002    want 0.0214002    ok
  between -1..9 sigma: true 8.4134e-01  beta 42 (0.841344746069, ['P(a < X < b) = 0.8413'], ['P(a < X < b) = 0.8413'])  beta 42a (0.841344746069, ['P(a < X < b) = 0.8413'], ['P(a < X < b) = 0.8413'])
  D6  between -1..9 sigma: beta 42a NE_P = SciPy (12-digit relative) got 0.841345     want 0.841345     ok
  D6  ... an ordinary area is beta 42's to the last digit    got 0.841345     want 0.841345     ok
  D6  outside 9..12 sigma: "Between area < 0.0001" (beta 42: ['Between area = 0.0000']) ok
  result view, window 8..10, N(0,1), between 8.5 and 9.5: {'beta 42': (['P(a < X < b) = 0.0000'], ['0.0000']), 'beta 42a': (['P(a < X < b) < 0.0001'], ['< 0.0001'])}
  D6  result view: "P(a < X < b) < 0.0001" and the riding tag "< 0.0001" (beta 42: 0.0000, tag 0.0000) ok
  Explorer, N(0,1), between 8.5 and 9.5: {'beta 42': (['area between = 0.0000'], []), 'beta 42a': (['area between < 0.0001'], [])}
  D6  Explorer: "area between < 0.0001" (beta 42: "= 0.0000") ok
  bars 1 and 32 under N(-100, 15): beta 42 ['bin 1: 3 observed, 0.0 expected (n×p)', 'x from 40.00 to 43.75,  p = 0.0000', 'bin 32: 2 observed, 0.0 expected (n×p)', 'x from 156.25 to 160.00,  p = 0.0000']
                                   beta 42a ['bin 1: 3 observed, < 0.1 expected (n×p)', 'x from 40.00 to 43.75,  p < 0.0001', 'bin 32: 2 observed, < 0.1 expected (n×p)', 'x from 156.25 to 160.00,  p < 0.0001']
  D6  a bar far above the curve: "3 observed, < 0.1 expected", "p < 0.0001" (beta 42: "0.0 expected", "p = 0.0000") ok

==============================================================================
PART D7 -- right-tail quantiles as minus the quantile of the small area (12 digits modelled)
==============================================================================
  right tail, alpha 1E-13                beta 42: Unverified: NORMALD_ICDF(0, 1, 1): p = 1 outside (0,1) -- the device has not been seen to answer this beta 42a: z* = 7.348796 (want 7.348796)
  D7  right tail, alpha 1E-13: beta 42a z* = 7.3488 (SciPy); beta 42 stopped at NORMALD_ICDF(..., 1) ok
  two tails, alpha 1E-13                 beta 42: Unverified: NORMALD_ICDF(0, 1, 1): p = 1 outside (0,1) -- the device has not been seen to answer this beta 42a: z* = 7.440902 (want 7.440902)
  D7  two tails, alpha 1E-13: beta 42a z* = 7.4409 (SciPy); beta 42 stopped at NORMALD_ICDF(..., 1) ok
  central, C = 0.999999999999            beta 42: z* = 7.034487                                                beta 42a: z* = 7.130510 (want 7.130507)
  D7  central, C = 0.999999999999: beta 42a z* = 7.1305 (SciPy); beta 42 stopped or was wrong (z* = 7.0345) ok
  central, C = 99.9999999999 (percent)   beta 42: z* = 7.034487                                                beta 42a: z* = 7.130510 (want 7.130507)
  D7  central, C = 99.9999999999 (percent): beta 42a z* = 7.1305 (SciPy); beta 42 stopped or was wrong (z* = 7.0345) ok
  power picture, alpha 1E-13             beta 42: Unverified: NORMALD_ICDF(0, 1, 1): p = 1 outside (0,1) -- the device has not been seen to answer this beta 42a: z* = 7.348796 (want 7.348796)
  D7  power picture, alpha 1E-13: beta 42a z* = 7.3488 (SciPy); beta 42 stopped at NORMALD_ICDF(..., 1) ok
  right tail, alpha 0.05                 beta 42: z* = 1.644854                                                beta 42a: z* = 1.644854 (want 1.644854)
  D7  right tail, alpha 0.05: beta 42a z* = SciPy, and = beta 42's ok
  two tails, alpha 0.05                  beta 42: z* = 1.959964                                                beta 42a: z* = 1.959964 (want 1.959964)
  D7  two tails, alpha 0.05: beta 42a z* = SciPy, and = beta 42's ok
  central, C = 0.95                      beta 42: z* = 1.959964                                                beta 42a: z* = 1.959964 (want 1.959964)
  D7  central, C = 0.95: beta 42a z* = SciPy, and = beta 42's ok
  power picture, alpha 0.05              beta 42: z* = 1.644854                                                beta 42a: z* = 1.644854 (want 1.644854)
  D7  power picture, alpha 0.05: beta 42a z* = SciPy, and = beta 42's ok
  D7  every form at its edges (1E-300, 1E-13, 0.999999999999, ...; 21 runs): no stop, every NORMALD_ICDF argument (21 calls) strictly inside 0..1 at 12 digits, no E / "= <" / -0 ok
  D6-7 the 12-digit model is off again                       ok

==============================================================================
PART E  -- the source, statically
==============================================================================
  E1  one STRING call left in the code, inside ne_Fx ([688]) ok
  E2  beta 42 had 134 STRING calls; beta 42a has 134 ne_Fx / ne_PStr calls in their place ok
  E3  banner and second banner say beta 42a                  ok
  E3  the file map gives the true line count (3706 = 3706)   ok
  E3  Roger's disclaimer sits under the distribution terms (comment only) ok
  E3  the tested-on lines say beta 42a has run on the PC harness only ok
  E3  a dated "beta 42a (19 Oct 2026)" paragraph citing D-NE-1..5 and "Line numbers are beta 42's" ok
  E4  ne_Fx: forward-declared, defined at 683, before its first use at 701 ok
  E4  ne_PStr: forward-declared, defined at 698, before its first use at 1677 ok
  E4  ne_Eq: forward-declared, defined at 711, before its first use at 1677 ok
  E4  ne_Btw: forward-declared, defined at 729, before its first use at 1769 ok
  E5  no new name matches a built-in, case ignored (ne_Fx, ne_PStr, ne_Eq, ne_Btw, fxV, fxD, fxR, psV, psD, eqS, pcO, btM, btS, btA, btB) ok
  E6  every LOCAL line holds 6 names or fewer (61 lines)     ok
  E7  no // comment inside an open bracket                   ok
  E8  no right tail as 1 - CDF left (1 - NORMALD_CDF, 1-NE_P, 1-pcP, 1 - c2Pw, 1 - ndPV) ok
  E8  no quantile of 1 - p: no NORMALD_ICDF whose argument is formed as 1 - p or (1 + C)/2 ok
  NORMALD_ICDF(NE_MU, NE_SG, icP)        percentile: icP typed, refused unless 0 < icP < 1
  -NORMALD_ICDF(0, 1, icP)               right tail: alpha typed, refused unless 0 < alpha < 1
  NORMALD_ICDF(0, 1, icP)                left tail: alpha typed, refused unless 0 < alpha < 1
  -NORMALD_ICDF(0, 1, icP / 2)           two tails: alpha/2 in (0, 0.5)
  -NORMALD_ICDF(0, 1, (1 - icC) / 2)     central: C in (0, 1) after the percent rule, so (1 - C)/2 in (0, 0.5)
  -NORMALD_ICDF(0, 1, c2A)               power picture: alpha typed, refused unless 0 < alpha < 1
  E8  the six NORMALD_ICDF calls are exactly these, each taking an area that its form keeps strictly inside 0..1 (['NORMALD_ICDF(NE_MU, NE_SG, icP)', '-NORMALD_ICDF(0, 1, icP)', 'NORMALD_ICDF(0, 1, icP)', '-NORMALD_ICDF(0, 1, icP / 2)', '-NORMALD_ICDF(0, 1, (1 - icC) / 2)', '-NORMALD_ICDF(0, 1, c2A)']) ok
  E9  INSTRING sites as in beta 42 (0); the one new LEFT is guarded by DIM ok
  ppl_check_v4: beta 42a {'E5': 5, 'W3': 6}; beta 42 {'E5': 5, 'W3': 6}
  E10 ppl_check_v4: no hard code (E2 E3 E6 E8 E10 E11 E12), the same tally as beta 42 ok
  lint_ppl: beta 42a 67 problems, beta 42 75
  E11 lint_ppl: the 7 "CHOOSE return value" lines and the STRING(NORMALD(..)) miscount are gone, nothing new ok

==============================================================================
PART F  -- the routine diff, beta 42 -> beta 42a
==============================================================================
  changed (12): NormExp, ne_Compare2, ne_DiagPage, ne_Explorer, ne_Histo, ne_InvCalc, ne_NormDraw, ne_ProbCalc, ne_SetWin, ne_Tag, ne_ZSolve, ne_ZtoD2
  added   (4): ne_Btw, ne_Eq, ne_Fx, ne_PStr
  removed (0): -
  byte-identical (23): #PYTHON SAMPBINSPY, ne_AnimStd, ne_AutoWin, ne_BarHit, ne_BinData, ne_DataLoad, ne_Drain, ne_DrawFrame, ne_HelpPages, ne_InShade, ne_NiceNum, ne_NormPlot, ne_RTxt, ne_ResetAll, ne_ResidLoad, ne_SampBins, ne_SetDist, ne_ShowCurve, ne_Sweep, ne_TwoGroups, ne_WaitAny, ne_ZPanel, ne_ZSStore
  F1  exactly the intended routines changed (D-NE-1: 10 with displays; D-NE-2 and the two tail items: ne_ProbCalc, ne_InvCalc, ne_Compare2, ne_NormDraw; D-NE-3: 6 menus; D-NE-4: ne_InvCalc; D-NE-5: ne_Explorer) ok
  F2  the four helpers are the only routines added, none removed ok
  F3  the #PYTHON SAMPBINSPY block is byte-identical         ok
  outside the routines (header, declarations, comments): 10 hunks; beta 42 lines touched [2, 18, 19, 24, 27, 75]
  F4  outside the routines only the header (2, 18-19, 24, 27, 75), the disclaimer, the map, the beta 42a paragraph, three forward declarations and the helpers' comments changed ok

==============================================================================
h.sci_strings of every ppl_run_v3e run
==============================================================================
  beta 42a  D1a right tail x=180               0 []
  beta 42a  D1b helpers                        0 []
  beta 42a  D1c right tail x = 180             0 []
  beta 42a  D1c Explorer, x0 dragged to the left edge 0 []
  beta 42a  D1c outermost bar tapped           0 []
  beta 42a  D1c percentile at area 1E-9        0 []
  beta 42a  D1c central C = 0.9999             0 []
  beta 42a  D1d S1 ProbCalc                    0 []
  beta 42a  D1d S2 InvCalc                     0 []
  beta 42a  D1d S3 ZSolve                      0 []
  beta 42a  D1d S4 Compare2                    0 []
  beta 42a  D1d S5 SetWin, Diag                0 []
  beta 42a  D1d S6 ZtoD2                       0 []
  beta 42a  D1d S7 Explorer                    0 []
  beta 42a  D1d S8 bars                        0 []
  beta 42a  D1d S9 NormExp                     0 []
  beta 42a  D1d S10 animation, help            0 []
  beta 42a  D2 right tail                      0 []
  beta 42a  D2 Complement                      0 []
  beta 42a  D2 P(outside)                      0 []
  beta 42a  D2 Outside area                    0 []
  beta 42a  D2 power                           0 []
  beta 42a  D2 β                               0 []
  beta 42a  D2 views                           0 []
  beta 42a  D4 central                         0 []
  beta 42a  D5 Explorer                        0 []
  beta 42a  D6 between                         0 []
  beta 42a  D6 views                           0 []
  beta 42a  D6 bars                            0 []
  beta 42a  D7 quantiles                       0 []
  beta 42a  D7 edges                           0 []
  beta 42   D1a right tail x=180               3 ['4.8213ᴇ-8', '2.1356ᴇ-9', '4.8213ᴇ-8']
  beta 42   D1c right tail x = 180             3 ['4.8213ᴇ-8', '2.1356ᴇ-9', '4.8213ᴇ-8']
  beta 42   D1c Explorer, x0 dragged to the left edge 5 ['1.8077ᴇ-6', '1.2934ᴇ-9', '7.909464ᴇ-9', '1.2934ᴇ-9']
  beta 42   D1c outermost bar tapped           2 ['1.1ᴇ-2', '5.6746ᴇ-5']
  beta 42   D1c percentile at area 1E-9        4 ['1.0000ᴇ-9', '1.0ᴇ-7', '3.1214ᴇ-11', '1.0000ᴇ-9']
  beta 42   D1c central C = 0.9999             1 ['5.00ᴇ-3']
  beta 42   D1d S1 ProbCalc                    1224 ['7.6199ᴇ-24', '2.8249ᴇ-26', '7.6199ᴇ-24', '6.2210ᴇ-16']
  beta 42   D1d S2 InvCalc                     46 ['1.0000ᴇ-12', '1.0ᴇ-10', '1.8028ᴇ-14', '1.0000ᴇ-12']
  beta 42   D1d S3 ZSolve                      17 ['6.6667ᴇ-7', '1.0000ᴇ-5', '1.00ᴇ-5', '1.0000ᴇ-9']
  beta 42   D1d S4 Compare2                    17 ['1.0000ᴇ-7', '1.000ᴇ-7', '1.00ᴇ-7', '1.00ᴇ-7']
  beta 42   D1d S5 SetWin, Diag                11 ['4.5878ᴇ-6', '3.9894ᴇ-6', '9.1757ᴇ-5', '7.9788ᴇ-5']
  beta 42   D1d S6 ZtoD2                       1 ['1.4901ᴇ-8']
  beta 42   D1d S7 Explorer                    19 ['3.3977ᴇ-6', '1.8990ᴇ-8', '1.076976ᴇ-7', '3.7979ᴇ-8']
  beta 42   D1d S8 bars                        6 ['4.9ᴇ-41', '2.4685ᴇ-43', '1.6ᴇ-7', '7.8136ᴇ-10']
  beta 42   D1d S9 NormExp                     3 ['6.6613ᴇ-16', '6.6613ᴇ-16', '6.6613ᴇ-16']
  beta 42   D1d S10 animation, help            78 ['1.00ᴇ-3', '-1.00ᴇ-3', '1.00ᴇ-3', '-2.00ᴇ-3']
  beta 42   D2 right tail                      8 ['4.8222ᴇ-8', '2.1360ᴇ-9', '4.8222ᴇ-8', '9.8700ᴇ-10']
  beta 42   D2 Complement                      1 ['6.6613ᴇ-16']
  beta 42   D2 P(outside)                      2 ['6.6613ᴇ-16', '6.6613ᴇ-16']
  beta 42   D2 Outside area                    1 ['6.6613ᴇ-16']
  beta 42   D2 power                           1 ['8.3446ᴇ-5']
  beta 42   D2 β                               0 []
  beta 42   D2 views                           1 ['6.6613ᴇ-16']
  beta 42   D4 central                         0 []
  beta 42   D5 Explorer                        0 []
  beta 42   D6 between                         0 []
  beta 42   D6 views                           0 []
  beta 42   D6 bars                            0 []
  beta 42   D7 quantiles                       4 ['5.00ᴇ-11', '5.00ᴇ-11', '8.3446ᴇ-5', '1.5470ᴇ-6']
  every ppl_run_v3e run of beta 42a: h.sci_strings is empty (31 scenario groups, 0 entries) ok

==============================================================================
TOTAL: 322 checks, 0 failures
