# Settlement Algorithm Test Cases

## Example from Splitwise Documentation

**Scenario:**
- Ana borrows $10 from Bob
- Bob borrows $10 from Charlie

**Expected Result with Simplify Debts:**
- Ana pays Charlie $10
- Bob does nothing

**How it works:**
1. Calculate net balances:
   - Ana: -$10 (owes $10)
   - Bob: $0 (owed $10, owes $10)
   - Charlie: +$10 (owed $10)

2. Algorithm separates into:
   - Debtors: [Ana: $10]
   - Creditors: [Charlie: $10]

3. Match largest debtor with largest creditor:
   - Ana pays Charlie $10
   - Result: 1 transaction (minimum possible)

**Without Simplify Debts (traditional):**
- Ana pays Bob $10
- Bob pays Charlie $10
- Result: 2 transactions

## Algorithm Implementation

The current greedy algorithm:
1. Calculates net balances for each person
2. Separates into creditors (positive net) and debtors (negative net)
3. Sorts both lists by amount (largest first)
4. Matches largest creditor with largest debtor
5. Creates settlement for the minimum amount
6. Updates remaining amounts and continues

This ensures minimum number of transactions to settle all debts.
