"""Verify an illustrative budget, not vendor prices or actual ROI."""
import csv
import json
from decimal import Decimal
from pathlib import Path
import sys

file=Path(sys.argv[1]) if len(sys.argv)>1 else Path(__file__).with_name('cost-example.csv')
with file.open(newline='',encoding='utf-8') as stream:
    rows=list(csv.DictReader(stream))
recurring=sum((Decimal(row['monthly_usd']) for row in rows),Decimal(0))
setup=sum((Decimal(row['one_time_usd']) for row in rows),Decimal(0))
assert recurring==Decimal('330')
assert setup==Decimal('480')
assert 3*40==120 and 4*40==160 and 12*40==480
print(json.dumps({'illustrative_only':True,'monthly_recurring_usd':str(recurring),
    'one_time_setup_usd':str(setup),'first_month_usd':str(recurring+setup),
    'year_one_usd':str(setup+12*recurring),'roi_measured':False}))
