docs: the assumed list, checked against the standards; mutation score
check / check (push) Canceled after 0s
check / check (push) Canceled after 0s
Each formerly ASSUMED behavior is now CONFIRMED, CONVENTION, DESIGN, or CHANGE (pending), with its source (Reg. S-X, ASC 230 via Deloitte DART, IRS K-1 instructions, OpenStax). Two need engine work: members' equity should allocate cumulatively so each member's beginning equals the prior ending (#7), and the cash flow should show financing gross and classify investing by account role (#8). Two questions for the CPA are listed. The test doc comments that relied on them now cite the verdicts. Core mutation run: 1,011 caught + 13 timeouts of 1,024 viable, 0 missed. No benchmark budget, by decision. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GWVo7x3UHw5kwCUaWxiejX
This commit is contained in:
1 parent
0dcf865ff8
commit
08d1a9c230
6 files changed
+40
-35
No files matched your search
@@ -538,7 +538,7 @@ fn create_invoice_refuses_due_before_date_books_unchanged() {
|
||||
|
||||
/// Closes January 2026 on `l`.
|
||||
///
|
||||
/// ASSUMED: closing a period with nothing in it still marks it closed
|
||||
/// CONVENTION (docs/testing.md #4): closing a period with nothing in it still marks it closed
|
||||
/// (close_period returns Ok(None)); the precondition is asserted.
|
||||
fn close_january(l: &mut Ledger) {
|
||||
let p = l
|
||||
|
||||
@@ -316,7 +316,7 @@ fn schedule_clamps_to_end_of_life() {
|
||||
/// life ends 2026-03-15 so Mar holds 1..14 = 14/31 → 140.00. 17/31 + 14/31
|
||||
/// = one full month, and the total is exactly 620.00.
|
||||
///
|
||||
/// ASSUMED: life ends on purchase_date + useful_life_months and the end day
|
||||
/// CONVENTION (docs/testing.md #9): life ends on purchase_date + useful_life_months and the end day
|
||||
/// itself is not held (matches the doc's "17/31 + 14/30" pairing for a
|
||||
/// purchase on the 15th).
|
||||
#[test]
|
||||
@@ -343,7 +343,7 @@ fn partial_first_and_last_months_make_one_full_month_b15() {
|
||||
/// Jan 17/31 → 170.00, Feb 310.00, Mar 310.00 (acc 790.00), Apr (30 days)
|
||||
/// trues up to 930 − 790 = 140.00, not 14/30 × 310 = 144.67.
|
||||
///
|
||||
/// ASSUMED: same end-of-life convention as the test above.
|
||||
/// CONVENTION (#9): same end-of-life convention as the test above.
|
||||
#[test]
|
||||
fn last_month_trues_up_unequal_month_lengths_b15() {
|
||||
let a = asset("1030.00", "100.00", 3, date(2026, 1, 15));
|
||||
@@ -867,7 +867,7 @@ fn run_payroll_posts_hand_worked_entry() {
|
||||
/// 750.00, state 250.00, SS 620 + 248 = 868.00, Medicare 145 + 58 = 203.00,
|
||||
/// other 200.00, net 3567.50 + 1697.00 = 5264.50.
|
||||
///
|
||||
/// ASSUMED: lines are aggregated per account ("zero totals are skipped"
|
||||
/// CONFIRMED (docs/testing.md #10): lines are aggregated per account ("zero totals are skipped"
|
||||
/// implies totals), not one line per employee.
|
||||
#[test]
|
||||
fn run_payroll_aggregates_employees() {
|
||||
|
||||
@@ -1235,7 +1235,7 @@ fn a_loss_closes_as_a_debit_to_equity() {
|
||||
}
|
||||
|
||||
/// Oracle: close INVARIANT 5: nothing to close posts nothing and returns
|
||||
/// None. ASSUMED: the period is still marked closed (step 3 of the doc).
|
||||
/// None. CONVENTION (docs/testing.md #4): the period is still marked closed (step 3 of the doc).
|
||||
#[test]
|
||||
fn a_close_with_nothing_to_close_posts_no_entry() {
|
||||
let mut b = books();
|
||||
|
||||
@@ -531,7 +531,7 @@ fn pnl_closed_month_still_reports_its_earnings() {
|
||||
assert_eq!(year.net_income(), c(7000));
|
||||
}
|
||||
|
||||
/// Oracle: P&L SCENARIO 2 (ASSUMED in the spec itself) — start after end
|
||||
/// Oracle: P&L SCENARIO 2 (DESIGN, docs/testing.md #1) — start after end
|
||||
/// refuses.
|
||||
#[test]
|
||||
fn pnl_period_start_after_end_refuses() {
|
||||
@@ -1009,7 +1009,7 @@ fn me_refuses_bad_shares() {
|
||||
/// earnings 100.01 -> A 50.01, B 50.00; period income 201.01 -> A 100.51,
|
||||
/// B 100.50. Total ending 2251.02 = BS equity.
|
||||
///
|
||||
/// ASSUMED: the beginning (unclosed prior earnings) and the period's income
|
||||
/// CHANGE PENDING (docs/testing.md #7): the beginning (unclosed prior earnings) and the period's income
|
||||
/// are each split separately (INVARIANT 3 names them separately), not
|
||||
/// cumulative-then-differenced.
|
||||
#[test]
|
||||
@@ -1407,7 +1407,7 @@ fn sorted_amounts(lines: &[ledger_core::CashFlowLine]) -> Vec<Decimal> {
|
||||
/// 400; AR up 300 (-300), AP up 80 (+80); CFO 180; financing loan 300 +
|
||||
/// contribution 100 = 400; net change 580 = cash 1000 -> 1580.
|
||||
///
|
||||
/// ASSUMED: one working-capital / financing line per account that changed.
|
||||
/// CHANGE PENDING (docs/testing.md #8): one working-capital / financing line per account that changed.
|
||||
#[test]
|
||||
fn cf_hand_computed_with_designated_debt() {
|
||||
let co = cf_example_books();
|
||||
@@ -2418,7 +2418,7 @@ proptest! {
|
||||
/// NI + depreciation + working capital; with or without a close and a
|
||||
/// designated loan.
|
||||
///
|
||||
/// ASSUMED: with no registered fixed assets, depreciation and investing
|
||||
/// CHANGE PENDING (docs/testing.md #8): with no registered fixed assets, depreciation and investing
|
||||
/// are zero (receivables are current, so working capital).
|
||||
#[test]
|
||||
fn prop_cf_sections_sum_to_change_in_cash(gens in arb_books(), (a, _m, e) in three_days(), month in opt_month(), designate in any::<bool>()) {
|
||||
|
||||
Reference in new issue
Block a user