- Move cashflow_model/ -> domain/ - Move engine/ -> application/ - Move cli/, sync/, ai/ -> infrastructure/ - Update all imports across codebase and tests - Add version=1 to FinancialModel.to_dict() with migration hook in from_dict - Update pyproject.toml: cf entry point and packages.find Tests: 63/63 pass.
22 lines
841 B
Python
22 lines
841 B
Python
from application.scenarios import DEFAULT_SCENARIOS, ScenarioService
|
|
|
|
|
|
class TestScenarioService:
|
|
def test_baseline(self, sample_model):
|
|
service = ScenarioService(sample_model)
|
|
result = service.apply(DEFAULT_SCENARIOS["baseline"], months=6)
|
|
assert result["scenario"] == "baseline"
|
|
assert result["total_balance"] is not None
|
|
|
|
def test_compare_returns_three(self, sample_model):
|
|
service = ScenarioService(sample_model)
|
|
results = service.compare(months=6)
|
|
assert "baseline" in results
|
|
assert "optimistic" in results
|
|
assert "pessimistic" in results
|
|
|
|
def test_what_if(self, sample_model):
|
|
service = ScenarioService(sample_model)
|
|
result = service.what_if(income_mult=1.2, expense_mult=0.9, months=6)
|
|
assert result["scenario"] == "what-if"
|