From 9a309a1eb0dbbc25c720eb779c840379540c5ccc Mon Sep 17 00:00:00 2001 From: Adarsh Murthy Date: Mon, 12 Jun 2017 09:37:09 -0400 Subject: [PATCH 1/4] Add some more tests for liability. --- bpfin/tests/test_financials/test_liability.py | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/bpfin/tests/test_financials/test_liability.py b/bpfin/tests/test_financials/test_liability.py index 3c0433b..ae4636e 100644 --- a/bpfin/tests/test_financials/test_liability.py +++ b/bpfin/tests/test_financials/test_liability.py @@ -1,8 +1,48 @@ +"""Tests for liability file in financials.""" from datetime import date -from bpfin.financials.liability import final_liability_dict +from datetime import datetime +from bpfin.financials.liability import final_liability_dict, add_months from bpfin.tests.testdata import sample_data as db +class TestLiability: + """Test all functions in liability file.""" + + def test_add_months_1(self): + """Test add_months with 0 months to add.""" + start_date = date(2017, 6, 1) + expected_result = datetime(2017, 6, 1) + result = add_months(start_date, 0) + assert result == expected_result + + def test_add_months_2(self): + """Test adding 1 month to December.""" + start_date = date(2016, 12, 10) + expected_result = datetime(2017, 1, 10) + result = add_months(start_date, 1) + assert result == expected_result + + def test_add_months_3(self): + """Test adding 1 month to Jan 31.""" + start_date = date(2017, 1, 31) + expected_result = datetime(2017, 2, 28) + result = add_months(start_date, 1) + assert result == expected_result + + def test_add_months_4(self): + """Test adding 1 month to Jan 31 in leap year.""" + start_date = date(2016, 1, 31) + expected_result = datetime(2016, 2, 29) + result = add_months(start_date, 1) + assert result == expected_result + + def test_add_months_5(self): + """Test adding 15 months to July 4.""" + start_date = date(2016, 7, 4) + expected_result = datetime(2017, 10, 4) + result = add_months(start_date, 15) + assert result == expected_result + def test_final_liability_dict(): input_analysis_date = db.analysis_date input_dict = db.liability_input -- GitLab From 8abfed325616e71c2122b6f5d595785f8088dc7e Mon Sep 17 00:00:00 2001 From: Adarsh Murthy Date: Mon, 12 Jun 2017 11:40:18 -0400 Subject: [PATCH 2/4] Modify gitignore to not track coverage and swp files. --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 2679402..0980277 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ build .vscode .env .python-version +*.swp +*.coverage -- GitLab From 70a48da7814cc11d6ef1f2a41ad12c1ca70bcb77 Mon Sep 17 00:00:00 2001 From: Adarsh Murthy Date: Mon, 12 Jun 2017 11:41:01 -0400 Subject: [PATCH 3/4] Add remaining test cases for liability.py file. --- bpfin/tests/test_financials/test_liability.py | 77 ++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/bpfin/tests/test_financials/test_liability.py b/bpfin/tests/test_financials/test_liability.py index ae4636e..3d38633 100644 --- a/bpfin/tests/test_financials/test_liability.py +++ b/bpfin/tests/test_financials/test_liability.py @@ -1,7 +1,8 @@ """Tests for liability file in financials.""" from datetime import date from datetime import datetime -from bpfin.financials.liability import final_liability_dict, add_months +from bpfin.financials.liability import final_liability_dict, add_months, define_date_start, liability_calendar +from bpfin.financials.liability import create_liability_dict from bpfin.tests.testdata import sample_data as db @@ -43,6 +44,80 @@ class TestLiability: result = add_months(start_date, 15) assert result == expected_result + def test_define_start_date_1(self): + """Test define_date_start for a liability dictionary with one date.""" + input_dict = {'debt1': (150, 'NYSERDA', 12, date(2013, 5, 1))} + expected_result = date(2013, 5, 1) + result = define_date_start(input_dict) + assert result == expected_result + def test_define_start_date_2(self): + """Test with 4 debts in the liability dictionary.""" + input_dict = { + 'debt1': (100, 'NYSERDA', 10, date(2012, 3, 4)), + 'debt2': (150, 'NYSERDA', 12, date(2014, 4, 3)), + 'debt3': (120, 'NYSERDA', 14, date(2011, 6, 3)), + 'debt4': (200, 'NYSERDA', 18, date(2014, 8, 1)), + } + expected_result = date(2014, 8, 1) + result = define_date_start(input_dict) + assert result == expected_result + + def test_liability_calendar_1(self): + """Test the liability_calendar function for a date and months as 0.""" + expected_result = [] + result = liability_calendar(date(2013, 2, 1), 0) + assert result == expected_result + + def test_liability_calendar_2(self): + """Test the liability_calendar function for a date and months as 1.""" + expected_result = [date(2013, 2, 5)] + result = liability_calendar(date(2013, 2, 5), 1) + assert result == expected_result + + def test_liability_calendar_3(self): + """Test the liability_calendar function for a date and months as 15""" + expected_result = [ + date(2013, 5, 10), + date(2013, 6, 10), + date(2013, 7, 10), + date(2013, 8, 10), + date(2013, 9, 10), + date(2013, 10, 10), + date(2013, 11, 10), + date(2013, 12, 10), + date(2014, 1, 10), + date(2014, 2, 10), + date(2014, 3, 10), + date(2014, 4, 10), + date(2014, 5, 10), + date(2014, 6, 10), + date(2014, 7, 10), + ] + result = liability_calendar(date(2013, 5, 10), 15) + assert result == expected_result + + def test_create_liability_dict_1(self): + """Test the create_liability_dict function with one input.""" + input_dict = {'debt1': (100, 'NYSERDA', 12, date(2012, 10, 11))} + expected_result = [ + { + date(2012, 10, 11): 100, + date(2012, 11, 11): 100, + date(2012, 12, 11): 100, + date(2013, 1, 11): 100, + date(2013, 2, 11): 100, + date(2013, 3, 11): 100, + date(2013, 4, 11): 100, + date(2013, 5, 11): 100, + date(2013, 6, 11): 100, + date(2013, 7, 11): 100, + date(2013, 8, 11): 100, + date(2013, 9, 11): 100, + }, + ] + result = create_liability_dict(input_dict) + assert result == expected_result + def test_final_liability_dict(): input_analysis_date = db.analysis_date input_dict = db.liability_input -- GitLab From bc66a8358fb4c873f399c4b5629bf1ab2c4a418f Mon Sep 17 00:00:00 2001 From: Adarsh Murthy Date: Tue, 13 Jun 2017 17:12:49 -0400 Subject: [PATCH 4/4] Reorder import statements. --- bpfin/tests/test_financials/test_liability.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bpfin/tests/test_financials/test_liability.py b/bpfin/tests/test_financials/test_liability.py index 3d38633..fb7d543 100644 --- a/bpfin/tests/test_financials/test_liability.py +++ b/bpfin/tests/test_financials/test_liability.py @@ -1,6 +1,5 @@ """Tests for liability file in financials.""" -from datetime import date -from datetime import datetime +from datetime import date, datetime from bpfin.financials.liability import final_liability_dict, add_months, define_date_start, liability_calendar from bpfin.financials.liability import create_liability_dict from bpfin.tests.testdata import sample_data as db -- GitLab