SpicyRPN Release 2.0.0 UI test coverage

Each row maps the test plan's identifiers to executable XCTest families. Apply the Mac coverage to both arm64 and x86_64 builds, with the same frozen reference values. Native iOS device and arm64 Simulator coverage are separate. “All” cases expand into individual named activities, with frozen numeric references; they are not a single round-trip or inverse-function check.

Plan Test file(s) Coverage
A01–A08 EntrySettingsE2ETests, MemoryStatisticsE2ETests Baseline, group MCLR, recall verification, Last/ANS initialization, restart
B01–B15 EntrySettingsE2ETests, ComplexAlgebraicE2ETests Every digit, punctuation/sign/exponent states, correction, incomplete input, large ranges, entry limits, repeated keys
C01–C11 EntrySettingsE2ETests and function suites Shift selection/cancellation, every populated face, blank faces, prefixes, flags and mode changes
D01–D15 EntrySettingsE2ETests, ScientificE2ETests, DisplayControlsE2ETests Postfix RPN FIX, interrupted ALG FIX, precision limits, formatting, unchanged stored precision, FSE, cancel
E01–E06 ScientificE2ETests π/e/ln 2/π×e at 600 places, insertion sequencing, durable high-precision memory
F01–F15 ScientificE2ETests Arithmetic, exceptional values, reciprocal/sign/ABS, integer functions, both remainders, three percentage operations, checked chain
G01–G16 ScientificE2ETests Powers/roots/exponentials/logs, arbitrary-base log, gamma/log-gamma, factorial/log-factorial, permutations/combinations, erf/erfc, precision variants
H01–H11 ScientificE2ETests, ComplexAlgebraicE2ETests DEG/RAD/GRAD/DRG, all direct/inverse trig and HYP functions, atan2, captured ALG angle units
I01–I14 MemoryStatisticsE2ETests Every stack operation, Last values, command effects, fixed/unlimited depth, resizing and invalid settings
J01–J16 MemoryStatisticsE2ETests, ComplexAlgebraicE2ETests All general registers and STO modifiers, associative keys/values, matching, missing keys, nonfinite cases, mode sharing, precision and scope
K01–K19 MemoryStatisticsE2ETests Every statistics function/accumulator, weighted means, sample SD, regression/estimation, insufficient/degenerate data, subtraction, Last/stack behavior
L01–L21 FinancialE2ETests Five-register TVM and balloon solves, all-four-input storage order, HP solved-N rounding, cleared-input zero defaults, STO/RCL, BGN, errors, shortcuts, clearing
M01–M22 FinancialE2ETests CF0/CFj/Nj, indexed arithmetic storage, capacity, SHOW, NPV, IRR/root selection/bounds/errors, prefix n, clear scopes
N01–N15 FinancialE2ETests AMORT, financial INT, PRC/YTM, all depreciation methods, RND, invalid inputs, stack/Last/register effects
O01–O07 FinancialE2ETests MDY/DMY, DATE, actual and 30/360 ΔDAYS, leap centuries, reversed ranges and invalid encodings
P01–P19 ConversionE2ETests All 767 ordered pairs in 15 dimensions, identity and edge cases, picker changes, cancellation, RPN/ALG entry
Q01–Q21 ComplexAlgebraicE2ETests Complex component entry/focus, storage in every reachable bank, mode transitions, hidden components, normal-mode projection, complex controls
R01–R22 ComplexAlgebraicE2ETests Supported complex functions/branches/domains, real-only warnings, all angle units, polar display/entry/editing and mode transitions
S01–S28 ComplexAlgebraicE2ETests ALG precedence/grouping/operators, implicit multiplication, FUNC/commas/HYP, equals/ANS, correction/errors, storage, independence, limits and disabled functions
T01–T20 SpicyRPNUITests, DisplayControlsE2ETests, ComplexAlgebraicE2ETests Stable number geometry, overflow, calibration, pinned exponents, complex rows/units, reversed/deep stack, independent scrolling and dismissal
U01–U14 SpicyRPNUITests, DisplayControlsE2ETests Panels and boundaries, layouts/orientation/window sizes, tool sheets, HELP, GOAT, seeded/unseeded RAN#, hardware input and accessibility
V01–V21 PersistenceE2ETests, FinancialE2ETests, ComplexAlgebraicE2ETests Disk durability through termination/relaunch for numerical, entry, prefix, memory, financial, ALG, settings and presentation state
W01–W06 MemoryStatisticsE2ETests Every eligible/ineligible MCLR target, preservation of other banks, active entry, clearing comparison, final durable cleanup

Additional I/J/W cases expand the checks: 48 scientific commands have stack/Last effects checked, every MCLR target key is exercised, and group-clear isolation seeds all other banks before verifying them. TVM cases additionally check preservation of Last X/Last Y, the 0.005 solved-period rounding boundary, BEGIN/END compute readiness, and durable all-four-input calculations.

The current UI rejects a PREC sheet whose display count exceeds its proposed working precision; automatic context-clamping through non-UI APIs belongs to the existing lower-layer tests. Arbitrary unknown associative keys cannot be enumerated from the UI, so clear verification uses deliberately seeded keys. TVM cases verify that all four non-target register values participate regardless of storage order; internal timestamps are not part of financial input selection. Expanded-stack visibility is intentionally temporary.

Annunciator checks cover regular, associative, statistics, financial, and cash-flow bank occupancy (including stored zero), independent clear scopes, pending memory and function commands, RPN/ALG ENTRY, simultaneous flags, and relaunch. The main display and expanded stack must expose one consistent set of complete flag labels. Cases C12, W10, and T21 add prefix/entry, bank-occupancy, and narrow-display checks; V05/V06/V10/V14 also verify restored flags. CF0 and CLcf retain their existing write of zero to n, so FIN reflects that stored register independently of CF.

At initial implementation, Swift syntax/type integration and independent oracle regeneration were checked in a Linux environment. Replaying the numeric and state scenarios through the actual calculator command/model layer passed 4,895 assertions, including all four 600-place comparisons, conversion cases, and ALG entry/token limits. Platform drawing and audio were stand-ins for this replay; it does not substitute for running the real UI test target. Release validation requires Apple-native compilation, UI execution, rendering, timing, and destination-specific control checks using ⌘U. Keep those Xcode reports with the release validation records; the historical source-level replay is not a native test result for Release 2.0.0.