Skip to content

Commit

Permalink
change import order and usage
Browse files Browse the repository at this point in the history
  • Loading branch information
vladkhard committed Aug 17, 2017
1 parent db8d5a6 commit 3cfedff
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 12 deletions.
8 changes: 4 additions & 4 deletions openprocurement/tender/esco/npv_calculation.py
@@ -1,6 +1,6 @@
from openprocurement.tender.esco.constants import DAYS_PER_YEAR, NPV_CALCULATION_DURATION
from fractions import Fraction
import datetime
from datetime import date
from openprocurement.tender.esco.constants import DAYS_PER_YEAR, NPV_CALCULATION_DURATION


def calculate_contract_duration(
Expand Down Expand Up @@ -37,13 +37,13 @@ def calculate_discount_rates(
]


ANNOUNCEMENT_DATE = datetime.date(2017, 8, 18)
ANNOUNCEMENT_DATE = date(2017, 8, 18)


def calculate_days_with_cost_reduction(
days_per_year=DAYS_PER_YEAR,
announcement_date=ANNOUNCEMENT_DATE):
first_year_days = (datetime.date(announcement_date.year, 12, 31) - announcement_date).days
first_year_days = (date(announcement_date.year, 12, 31) - announcement_date).days
return [first_year_days] + [days_per_year] * NPV_CALCULATION_DURATION


Expand Down
17 changes: 9 additions & 8 deletions openprocurement/tender/esco/tests/npv_blanks.py
@@ -1,3 +1,5 @@
from datetime import date
from fractions import Fraction
from openprocurement.tender.esco.utils import calculate_npv
from openprocurement.tender.esco.constants import DAYS_PER_YEAR, NPV_CALCULATION_DURATION
from openprocurement.tender.esco.npv_calculation import (
Expand All @@ -9,8 +11,7 @@
calculate_days_with_payments,
calculate_income,
)
import datetime
from fractions import Fraction


nbu_rate = 0.22

Expand Down Expand Up @@ -50,38 +51,38 @@ def contract_duration(self):

def days_with_cost_reduction(self):
# First test
announcement_date = datetime.date(2017, 8, 18)
announcement_date = date(2017, 8, 18)
self.assertEqual(
calculate_days_with_cost_reduction(DAYS_PER_YEAR, announcement_date),
[135, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365]
)

announcement_date = datetime.date(2020, 1, 20)
announcement_date = date(2020, 1, 20)
self.assertEqual(
calculate_days_with_cost_reduction(DAYS_PER_YEAR, announcement_date),
[346, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365]
)

announcement_date = datetime.date(2019, 1, 20)
announcement_date = date(2019, 1, 20)
self.assertEqual(
calculate_days_with_cost_reduction(DAYS_PER_YEAR, announcement_date),
[345, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365]
)


def days_for_discount_rate(self):
announcement_date = datetime.date(2017, 8, 18)
announcement_date = date(2017, 8, 18)
days = calculate_days_for_discount_rate(calculate_days_with_cost_reduction(DAYS_PER_YEAR, announcement_date))
# (NPV_CALCULATION_DURATION - 1) is a number of full years
expected_days = [135] + [365] * (NPV_CALCULATION_DURATION - 1) + [230]
self.assertEqual(days, expected_days)

announcement_date = datetime.date(2020, 1, 20)
announcement_date = date(2020, 1, 20)
days = calculate_days_for_discount_rate(calculate_days_with_cost_reduction(DAYS_PER_YEAR, announcement_date))
expected_days = [346] + [365] * (NPV_CALCULATION_DURATION - 1) + [19]
self.assertEqual(days, expected_days)

announcement_date = datetime.date(2019, 1, 20)
announcement_date = date(2019, 1, 20)
days = calculate_days_for_discount_rate(calculate_days_with_cost_reduction(DAYS_PER_YEAR, announcement_date))
expected_days = [345] + [365] * (NPV_CALCULATION_DURATION - 1) + [20]
self.assertEqual(days, expected_days)
Expand Down

0 comments on commit 3cfedff

Please sign in to comment.