From 24adcb0a3e017b26d9af9783505e2fdf2f535500 Mon Sep 17 00:00:00 2001 From: chenzheng06 Date: Mon, 15 May 2017 12:47:17 -0400 Subject: [PATCH 1/3] Create new test files for cash_balance_year. And need to fix cash_balance calculation --- .../test_financials/test_cash_balance.py | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/bpfin/tests/test_financials/test_cash_balance.py b/bpfin/tests/test_financials/test_cash_balance.py index fa1a08d..2f27f7b 100644 --- a/bpfin/tests/test_financials/test_cash_balance.py +++ b/bpfin/tests/test_financials/test_cash_balance.py @@ -2,6 +2,29 @@ from bpfin.financials.cash_balance import cash_balance from datetime import date +def test_cash_balance_year_gap(): + input_dictionary = { + date(2014, 11, 1): (500, False), + date(2014, 12, 1): (400, False), + date(2014, 3, 13): (600, False), + date(2016, 11, 11): (500, False), + date(2016, 12, 31): (400, True) + } + input_analysis_date = { + 'proforma_start': date(2012, 5, 3), + 'proforma_duration': 12 + } + output_cash_balance = { + 2012: 450, + 2013: 450, + 2014: 500, + 2015: 450, + 2016: 400 + } + result = cash_balance(input_analysis_date, input_dictionary) + assert result == output_cash_balance + + def test_cash_balance(): input_dictionary = { date(2014, 11, 1): (500, False), -- GitLab From 05258134668345e8fd770e57ef90b558a6785c52 Mon Sep 17 00:00:00 2001 From: Sarey Hamarneh Date: Tue, 16 May 2017 17:04:01 -0400 Subject: [PATCH 2/3] Fix data --- bpfin/tests/testdata/sample_data.py | 138 +++++++++++++++++++++++++++- 1 file changed, 133 insertions(+), 5 deletions(-) diff --git a/bpfin/tests/testdata/sample_data.py b/bpfin/tests/testdata/sample_data.py index 5be9768..43c0845 100644 --- a/bpfin/tests/testdata/sample_data.py +++ b/bpfin/tests/testdata/sample_data.py @@ -2869,8 +2869,136 @@ inflation_coeff_dict = { datetime.date(2070, 12, 31): 2.9304467575976516} - - - - - +raw_gas_bill_demo = {} +raw_gas_bill_demo['utility_type'] = 'gas' +raw_gas_bill_demo['date_from'] = [ + datetime.date(2016, 11, 22), datetime.date(2016, 10, 18), datetime.date(2016, 9, 30), + datetime.date(2016, 9, 19), datetime.date(2016, 8, 18), datetime.date(2016, 7, 20), + datetime.date(2016, 6, 20), datetime.date(2016, 5, 18), datetime.date(2016, 4, 19), + datetime.date(2016, 3, 18), datetime.date(2016, 2, 17), datetime.date(2016, 1, 19), + datetime.date(2015, 12, 16), datetime.date(2015, 11, 16), datetime.date(2015, 10, 16), + datetime.date(2015, 9, 19), datetime.date(2015, 8, 18), datetime.date(2015, 7, 20), + datetime.date(2015, 6, 18), datetime.date(2015, 5, 19)] +raw__gas_bill_demo['date_to'] = [ + datetime.date(2016, 12, 16), datetime.date(2016, 11, 22), datetime.date(2016, 10, 18), + datetime.date(2016, 9, 30), datetime.date(2016, 9, 19), datetime.date(2016, 8, 18), + datetime.date(2016, 7, 20), datetime.date(2016, 6, 20), datetime.date(2016, 5, 18), + datetime.date(2016, 4, 19), datetime.date(2016, 3, 18), datetime.date(2016, 2, 17), + datetime.date(2016, 1, 19), datetime.date(2015, 12, 16), datetime.date(2015, 11, 16), + datetime.date(2015, 10, 16), datetime.date(2015, 9, 19), datetime.date(2015, 8, 18), + datetime.date(2015, 7, 20), datetime.date(2015, 6, 18)] +raw_gas_bill_demo['charge'] = [ + 304.79, 456.54, 232.75, 372.16, + 192.29, 379.36, 385.14, 400.74, + 343.49, 377.99, 378.44, 361.68, + 454.84, 397.33, 401.29, 354.76, + 412.32, 378.43, 414.33, 390.65] +raw_gas_bill_demo['usage'] = [ + 322.00, 470.00, 241.00, 148.00, + 429.00, 389.00, 402.00, 443.00, + 389.00, 429.00, 402.00, 389.00, + 456.00, 402.00, 416.00, 362.00, + 429.00, 389.00, 429.00, 402.00] + +raw_elec_bill_demo = {} +raw_elec_bill_demo['utility_type'] = 'electricity' +raw_elec_bill_demo['date_from'] = [ + datetime.date(2016, 11, 28), datetime.date(2016, 10, 26), datetime.date(2016, 9, 26), + datetime.date(2016, 8, 25), datetime.date(2016, 7, 27), datetime.date(2016, 6, 27), + datetime.date(2016, 5, 26), datetime.date(2016, 4, 27), datetime.date(2016, 3, 29), + datetime.date(2016, 2, 29), datetime.date(2016, 1, 28), datetime.date(2016, 12, 29), + datetime.date(2015, 11, 25), datetime.date(2015, 10, 27), datetime.date(2015, 9, 25), + datetime.date(2015, 8, 26), datetime.date(2015, 7, 28), datetime.date(2015, 6, 26), + datetime.date(2015, 5, 28), datetime.date(2015, 4, 28), datetime.date(2015, 3, 30), + datetime.date(2015, 2, 27), datetime.date(2015, 1, 28)] +raw_elec_bill_demo['date_to'] = [ + datetime.date(2016, 12, 28), datetime.date(2016, 11, 28), datetime.date(2016, 10, 26), + datetime.date(2016, 9, 26), datetime.date(2016, 8, 25), datetime.date(2016, 7, 27), + datetime.date(2016, 6, 27), datetime.date(2016, 5, 26), datetime.date(2016, 4, 27), + datetime.date(2016, 3, 29), datetime.date(2016, 2, 29), datetime.date(2016, 1, 28), + datetime.date(2016, 12, 29), datetime.date(2015, 11, 25), datetime.date(2015, 10, 27), + datetime.date(2015, 9, 25), datetime.date(2015, 8, 26), datetime.date(2015, 7, 28), + datetime.date(2015, 6, 26), datetime.date(2015, 5, 28), datetime.date(2015, 4, 28), + datetime.date(2015, 3, 30), datetime.date(2015, 2, 27)] +raw_elec_bill_demo['charge'] = [ + 56.01, 39.62, 67.42, 63.6, + 57.25, 56.21, 71.66, 68.28, + 63.57, 68.12, 71.73, 145.44, + 172.37, 130.65, 136.1, 137.14, + 126.16, 152.56, 169.68, 196.46, + 163.49, 163.88, 172.33] +raw_elec_bill_demo['usage'] = [ + 117.88, 91.93, 89.07, 98.17, + 86.88, 87.05, 101.05, 88.19, + 90.05, 104.19, 98.13, 182.55, + 208.85, 144.06, 136.16, 162.13, + 154.95, 179.64, 189.02, 168.92, + 190.8, 189.42, 214.66] + + +raw_oil_bill_demo = {} +raw_oil_bill_demo['utility_type'] = 'oil' +raw_oil_bill_demo['date_from'] = [ + datetime.date(2016, 11, 28), datetime.date(2016, 10, 26), datetime.date(2016, 9, 26), + datetime.date(2016, 8, 25), datetime.date(2016, 7, 27), datetime.date(2016, 6, 27), + datetime.date(2016, 5, 26), datetime.date(2016, 4, 27), datetime.date(2016, 3, 29), + datetime.date(2016, 2, 29), datetime.date(2016, 1, 28), datetime.date(2016, 12, 29), + datetime.date(2015, 11, 25), datetime.date(2015, 10, 27), datetime.date(2015, 9, 25), + datetime.date(2015, 8, 26), datetime.date(2015, 7, 28), datetime.date(2015, 6, 26), + datetime.date(2015, 5, 28), datetime.date(2015, 4, 28), datetime.date(2015, 3, 30), + datetime.date(2015, 2, 27), datetime.date(2015, 1, 28)] +raw_oil_bill_demo['date_to'] = [ + datetime.date(2016, 12, 28), datetime.date(2016, 11, 28), datetime.date(2016, 10, 26), + datetime.date(2016, 9, 26), datetime.date(2016, 8, 25), datetime.date(2016, 7, 27), + datetime.date(2016, 6, 27), datetime.date(2016, 5, 26), datetime.date(2016, 4, 27), + datetime.date(2016, 3, 29), datetime.date(2016, 2, 29), datetime.date(2016, 1, 28), + datetime.date(2016, 12, 29), datetime.date(2015, 11, 25), datetime.date(2015, 10, 27), + datetime.date(2015, 9, 25), datetime.date(2015, 8, 26), datetime.date(2015, 7, 28), + datetime.date(2015, 6, 26), datetime.date(2015, 5, 28), datetime.date(2015, 4, 28), + datetime.date(2015, 3, 30), datetime.date(2015, 2, 27)] +raw_oil_bill_demo['charge'] = [ + 3100, 2400, 3380, 1850, + 3000, 3200, 6700, 5300, + 4850, 5130, 5700, 3120, + 2420, 3400, 1870, 3020, + 3220, 6720, 5320, 4870, + 5150, 5720, 3680] +raw_oil_bill_demo['usage'] = [ + 1200, 700, 1000, 500, + 800, 900, 1700, 1400, + 1200, 1300, 1500, 1200, + 750, 1050, 550, 850, + 950, 1750, 1450, 1250, + 1350, 1550, 1450] + +raw_water_bill_demo = {} +raw_water_bill_demo['utility_type'] = 'water' +raw_water_bill_demo['date_from'] = [ + datetime.date(2016, 1, 3), datetime.date(2015, 1, 1), datetime.date(2014, 1, 2)] +raw_water_bill_demo['date_to'] = [ + datetime.date(2016, 12, 28), datetime.date(2016, 1, 2), datetime.date(2014, 12, 31)] +raw_water_bill_demo['charge'] = [ + 20000, 20500, 21000] +raw_water_bill_demo['usage'] = [ + 3500000, 3600000, 3300000] + +bill_demo = {'gas_bill': raw_gas_bill_demo, 'electricity_bill': raw_elec_bill_demo, + 'oil_bill': raw_oil_bill_demo, 'water_bill': raw_water_bill_demo} + +income_statement_demo = {} + +income_statement_demo['year'] = [2014, 2015, 2016] +income_statement_demo['total_revenue'] = [200000, 196000, 205000] +income_statement_demo['other_utility_expenses'] = [10000, 8400, 8100] +income_statement_demo['energy_expenses'] = [67000, 69000, 70000] +income_statement_demo['utility_expenses'] = [77000, 77400, 78100] +income_statement_demo['non_utility_operating_expenses'] = [105000, 104000, 130000] +income_statement_demo['total_expenses'] = [182000, 181400, 208100] +income_statement_demo['noi'] = [18000, 14600, -3100] + +balance_sheet_demo = {} + +balance_sheet_demo['year'] = [2014, 2015, 2016] +balance_sheet_demo['cash'] = [60000, 62000, 52000] +balance_sheet_demo['other_debt_service'] = [1000, 1000, 1000] +balance_sheet_demo['noi'] = [18000, 14600, -3100] -- GitLab From b0bcae3d203fc4dc1b2c90947fb87463263f94e1 Mon Sep 17 00:00:00 2001 From: Sarey Hamarneh Date: Thu, 18 May 2017 14:42:41 -0400 Subject: [PATCH 3/3] Reformat financial statements --- bpfin/tests/testdata/sample_data.py | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/bpfin/tests/testdata/sample_data.py b/bpfin/tests/testdata/sample_data.py index 43c0845..2fb3de6 100644 --- a/bpfin/tests/testdata/sample_data.py +++ b/bpfin/tests/testdata/sample_data.py @@ -2985,20 +2985,12 @@ raw_water_bill_demo['usage'] = [ bill_demo = {'gas_bill': raw_gas_bill_demo, 'electricity_bill': raw_elec_bill_demo, 'oil_bill': raw_oil_bill_demo, 'water_bill': raw_water_bill_demo} -income_statement_demo = {} - -income_statement_demo['year'] = [2014, 2015, 2016] -income_statement_demo['total_revenue'] = [200000, 196000, 205000] -income_statement_demo['other_utility_expenses'] = [10000, 8400, 8100] -income_statement_demo['energy_expenses'] = [67000, 69000, 70000] -income_statement_demo['utility_expenses'] = [77000, 77400, 78100] -income_statement_demo['non_utility_operating_expenses'] = [105000, 104000, 130000] -income_statement_demo['total_expenses'] = [182000, 181400, 208100] -income_statement_demo['noi'] = [18000, 14600, -3100] - -balance_sheet_demo = {} - -balance_sheet_demo['year'] = [2014, 2015, 2016] -balance_sheet_demo['cash'] = [60000, 62000, 52000] -balance_sheet_demo['other_debt_service'] = [1000, 1000, 1000] -balance_sheet_demo['noi'] = [18000, 14600, -3100] +raw_income_input_demo = {2014: {'total_revenue': 200000, 'other_utility_expenses': 10000, 'energy_expenses': 67000, 'utility_expenses': 77000, 'non_utility_operating_expenses': 105000, +'total_expenses': 182000, 'noi': 18000}, 2015: {'total_revenue': 196000, 'other_utility_expenses': 8400, 'energy_expenses': 69000, 'utility_expenses': 77400, 'non_utility_operating_expenses': 104000, +'total_expenses': 181400, 'noi': 14600}, 2016: {'total_revenue': 205000, 'other_utility_expenses': 8100, 'energy_expenses': 70000, 'utility_expenses': 78100, 'non_utility_operating_expenses': 130000, +'total_expenses': 208100, 'noi': -3100}} + + +raw_balance_sheet_demo = {2014: {'cash': 60000, 'other_debt_service': 1000, 'noi': 18000}, + 2015: {'cash': 62000, 'other_debt_service': 1000, 'noi': 14600}, + 2016: {'cash': 52000, 'other_debt_service': 1000, 'noi': -3100}} -- GitLab