Skip to content

Commit

Permalink
#119 added function to return negative date and related tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Raphael-Leb committed Apr 10, 2022
1 parent 446159b commit ab0ee9e
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 8 deletions.
18 changes: 13 additions & 5 deletions src/bullets/utils/market_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,18 @@ def get_date_in_x_market_days_away(lapse: int, start_date: datetime = datetime.t
start_date: date at which the function starts, default: present day
Returns: The date that is the amount of market days away in date format
"""
countdown = lapse
countdown = abs(lapse)
today = start_date
while countdown > 0:
today = today + timedelta(days=+1)
if is_market_open(today):
countdown -= 1
if lapse > 0:
while countdown > 0:
today = today + timedelta(days=+1)
if is_market_open(today):
countdown -= 1
if lapse < 0:
while countdown > 0:
today = today - timedelta(days=1)
if is_market_open(today):
countdown -= 1
else:
pass
return today
32 changes: 29 additions & 3 deletions src/test/test_market.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,16 @@ def test_days_away_same_week(self):
finally:
pass

def test_days_away_same_week_negative(self):
try:
startdate = datetime(2022,2,11)
enddate = datetime(2022,2,7)
daysaway = -4
self.assertEqual(True,get_date_in_x_market_days_away(daysaway,startdate)==enddate)
logger.info("Return date -4 days away same week test successful")
finally:
pass

def test_days_away_over_weekend(self):
try:
start_date = datetime(2022, 2, 7)
Expand All @@ -65,6 +75,16 @@ def test_days_away_over_weekend(self):
finally:
pass

def test_days_away_over_weekend_negative(self):
try:
startdate = datetime(2022,2,14)
enddate = datetime(2022,2,7)
daysaway = -5
self.assertEqual(True,get_date_in_x_market_days_away(daysaway,startdate)==enddate)
logger.info("Return date -5 days away over the weekend test successful")
finally:
pass

def test_days_away_over_holiday(self):
try:
start_date = datetime(2022, 2, 18)
Expand All @@ -75,6 +95,12 @@ def test_days_away_over_holiday(self):
finally:
pass


if __name__ == '__main__':
unittest.main()
def test_days_away_over_holiday_negative(self):
try:
startdate = datetime(2022,2,22)
enddate = datetime(2022,2,18)
daysaway = -1
self.assertEqual(True,get_date_in_x_market_days_away(daysaway,startdate)==enddate)
logger.info("Return date -2 days away over holiday test successful")
finally:
pass

0 comments on commit ab0ee9e

Please sign in to comment.