实际使用与边界
适用场景:修改公式时复用边界矩阵:先让一个可手算案例完成对账,再测试零值、已完成、不可达、无效、时点、费用和预算耗尽状态,最后检查真实页面。
边界:报告只验证一个仓库提交中的三类公式模块,不能验证未来收益、个人目标、供应商现价、税务处理、所有界面路径,也不能判断任何财务或技术决策是否适合个人。
问题与测试边界#
这次实测要回答:当舒适假设消失时,本站三类计算引擎能否仍然给出可预测结果。范围包括复利、应急金和 LLM API 成本引擎。三者服务不同决策,却都会把少量输入压缩成一个看起来权威的数字。因此测试针对明确的数学契约:总额必须对账,零值不能产生无穷结果,不可达目标必须被识别,无效收益率要明确失败,预算容量也不能变成负数。即使公式正确,也不能替读者选择投资、应急储备或模型供应商。
回归工具如何运行#
仓库在 Node 测试进程中加载 TypeScript 计算模块,直接调用导出函数,并把结果与独立记录的预期值比较。结构结果使用严格相等;金额类结果使用很小的数值容差,避免浮点表示制造假失败。命令不需要浏览器、网络、数据库或供应商 API,因此公式层运行快速且可重复;渲染、本地化、无障碍、实时价格和生产分析则留给其他检查。一次通过只能说明当前提交中的具名函数满足契约,不是每个计算器页面的通用认证。
基准案例:让总值、投入与增长对账#
复利基准从 10,000 开始,每月期末投入 1,000,使用 3% 有效年收益率并持续十年。预期终值为 152,887.16,其中起始资金与投入合计 130,000,模型增长为 22,887.16;引擎还必须准确返回十条年末记录。这个案例不只检查最后一个数字,还要求“终值等于投入本金加增长”始终成立。它也公开了时点约定:每笔投入在当期增长之后进入,因此采用期初投入的其他计算器即使公式正确,也会得到不同结果。
零收益让公式无处隐藏#
起始余额 1,000、每月投入 100、收益率为零并持续十年时,唯一正确终值是 13,000。反向目标函数必须算出每月需要 100,达到目标所需时间也必须是 120 个月。这些断言很重要,因为指数公式经常需要除以周期收益率;收益率为零时,分母也会消失。本实现会在这种情况下改用线性投入次数。若零收益测试失败,一个漂亮的正收益示例就可能掩盖公式断点,而保守情景恰恰最需要清晰行为。
投入频率测试的是时点,不是免费收益#
测试把同一笔年度 1,200 预算在 3% 有效年收益率下分别按日、月和年投入一年:每天约 3.29、每月 100,或每年 1,200。由于投入发生在各周期期末,结果依次约为 1,217.86、1,216.41 和 1,200。按日略高,是因为更多年度资金更早进入;年度投入直到最后一个周期才进入,因此当年没有增长。这不表示切换下拉框就能创造投资回报,而是记录一项现金流时点假设,比较情景时必须保持年度预算一致。
费用计算必须说明约定#
费用测试先应用 5% 年度毛收益,再把 0.5% 年费作为另一个乘法步骤,得到 4.475% 的模型净收益,而不是简单相减后的 4.5%。真实产品可能在不同时间扣费,还可能包含交易成本,或按平均资产计算,所以该约定不是账单模型。它的价值在于透明:预测能够准确说明使用了什么假设。Investor.gov 提醒,持续费用既减少投资余额,也减少这部分余额原本可能获得的收益。回归测试可防止未来界面改动悄悄忽略费用或重复扣费。
目标需要成功、已完成与不可达三种状态#
目标函数应区分三种结果。若起始余额已经达到目标,所需周期为零;若余额和投入都是零,正收益也没有本金可增长,目标在模型中不可达,应返回无周期,而不是编造日期。对于十年内从 10,000 在 3% 下达到 200,000 的可达目标,测试先求出每月所需投入,再把答案送回复利正向预测,确认重建终值确实达到 200,000。这种往返校验可以发现正向与反向公式采用了不同投入时点或收益率约定。
无效收益率应该明确失败#
负 100% 或更低的年收益率会让本模型使用的周期根无效,也意味着没有价值可以继续复利。引擎会抛出范围错误,而不是返回 NaN、无穷大或一张具有误导性的图。这是一项公式契约,并不是宣称所有金融工具的损失都不可能超过初始头寸。计算器边界必须匹配正在模拟的产品,界面也应解释限制。可复用原则是先确定公式有效的定义域,拒绝域外输入,并像检查正常结果一样认真测试拒绝路径。
应急储备要拆分保障期与未覆盖风险#
应急金引擎把基本储备与一次性风险缺口分开。必要月支出 8,000、保障六个月、可能风险 10,000,且已有 2,000 专项覆盖时,结果为 48,000 基本储备、8,000 风险缺口和 56,000 总目标。第二个零收益案例使用每月 3,000 必要支出、六个月保障期、2,500 未覆盖风险和 5,000 已有储蓄,目标为 20,500,剩余缺口为 15,500。这种结构区分收入中断与可识别意外成本,又不会假装所有灾难都要同时相加。
储蓄时间线必须能表达没有进展#
在零收益下,每月投入 500 填补剩余 15,500 需要 31 个月;若要在 24 个月完成,每月需要 645.83。测试还确认:已经充足的目标需要零个月;存在正缺口但没有投入、也没有收益时,目标不可达;负 100% 收益则会被拒绝。这些用例能阻止界面在余额根本不会变化时显示虚假完成日期,也说明目标计算不等于预测。工作变动、提款、利息、通胀、保险和真实紧急事件,即使在算术完全正确时也会改变实际路径。
LLM 成本模型必须对齐单位与预算#
API 成本夹具使用每次请求 2,000 输入 Token、500 输出 Token、25% 缓存输入比例,每百万 Token 价格分别为 2、0.5 和 8,每天 100 次、每月 30 天,固定月费 10,总预算 100。预期单次可变成本为 0.00725,月度总成本为 31.75,模型缓存节省为 2.25,剩余预算按该单位成本可支持 12,413 次请求。另一个用例让固定成本超过全部预算,同时所有 Token 价格为零;容量必须是零而不是无穷。上线后仍应以官方 Usage 与 Costs 数据对账。
这些通过结果不能证明什么#
断言无法证明 3% 是未来收益、六个月一定是合适储备、供应商价格不会变化,或请求必然命中缓存。它们没有覆盖税费、汇率、不规则投入、投资波动、收益顺序风险、所有供应商工具费,也没有覆盖每种浏览器和辅助技术。部分预期值来自对公式的独立审阅,但如果同一个缺陷同时被写进实现与预期,它仍可能存活。因此站点还需要来源复核、算例、界面测试、双语真实页面检查、生产监控和清晰教育声明。公式回归只是更大证据链中的一层。
一张可复用的边界矩阵#
为任何规划计算器先准备一个可手算的基准案例,并让每个展示分项完成对账。加入零收益或零价格、目标已经完成、目标无法推进、允许的最低与最高输入,以及一个必须被拒绝的无效输入。反向函数的答案应送回正向模型复核。频率或时点变化时保持年度现金预算一致;存在成本时拆开可变与固定部分,并主动耗尽预算。最后明确测试无法验证的内容。这样既能让未来改动更安全,也不会把绿色测试套件包装成财务、运营或产品建议。
常见问题
为什么要把公式与计算器页面分开测试?
直接测试函数速度更快,也更容易定位数值失败。真实页面仍需单独检查标签、本地化、格式化、键盘操作、响应式布局、元数据,以及输入是否连接到正确函数。
复利测试通过是否代表预测很现实?
不代表。它只说明代码遵守声明的收益率、投入时点、费用与投入假设。真实收益会波动,通胀和税费也会影响结果,平滑曲线不是市场预测。
为什么把 LLM API 计算器放进规划计算器测试?
它面对同一类信任问题:多种单位、价格、数量和固定成本被压缩成一个确定总额。边界测试能公开算术契约,而供应商 Usage 与账单数据仍是最终对账依据。