'Books', 'amount' => 125.50], ['category' => 'Donation', 'amount' => 500], ['category' => 'Office Supplies', 'amount' => 75], ['category' => 'donation', 'amount' => 25], ]); $this->assertSame(200.50, $summary['totalExpenses']); $this->assertSame(525.0, $summary['donationIncome']); $this->assertSame(['Books' => 125.50, 'Office Supplies' => 75.0], $summary['expenseCategories']); $this->assertArrayNotHasKey('Donation', $summary['expenseCategories']); } public function testPurchasesAreIncludedInExpenseCategory(): void { $summary = FinancialCategorySummaryService::summarize([ ['category' => 'Expense', 'amount' => 350], ['category' => 'Purchase', 'amount' => 25.50], ['category' => 'purchase', 'amount' => 10], ]); $this->assertSame(385.50, $summary['totalExpenses']); $this->assertSame(['Expense' => 385.50], $summary['expenseCategories']); $this->assertArrayNotHasKey('Purchase', $summary['expenseCategories']); } }