1
0
mirror of https://github.com/bspeice/metrik synced 2025-07-02 06:16:39 -04:00

Wasn't pandas fault, dates are weird

ICE site is doing something strange...
This commit is contained in:
Bradlee Speice
2016-08-12 19:35:22 -04:00
parent 71d6f951ba
commit 14e0b404dd
2 changed files with 64 additions and 56 deletions

View File

@ -2,7 +2,8 @@ from unittest import TestCase
from datetime import datetime
import pytz
from metrik.tasks.ice import USDLibor
from metrik.tasks.ice import LiborRateTask
from metrik.conf import USER_AGENT
# noinspection PyUnresolvedReferences
@ -11,36 +12,38 @@ class TestICE(TestCase):
def test_correct_libor_Aug8_2016(self):
# Validate with:
# https://www.theice.com/marketdata/reports/icebenchmarkadmin/ICELiborHistoricalRates.shtml?excelExport=&criteria.reportDate=8%2F8%2F16&criteria.currencyCode=USD
aug8_libor = USDLibor.retrieve_data(datetime(2016, 8, 8))
aug8_libor = LiborRateTask.retrieve_data(datetime(2016, 8, 8), 'USD')
assert (aug8_libor[aug8_libor['Tenor'] == 'Overnight']['USD ICE LIBOR'] == .4189).all()
assert (aug8_libor[aug8_libor['Tenor'] == '1 Week']['USD ICE LIBOR'] == .4431).all()
assert (aug8_libor[aug8_libor['Tenor'] == '1 Month']['USD ICE LIBOR'] == .5119).all()
assert (aug8_libor[aug8_libor['Tenor'] == '2 Month']['USD ICE LIBOR'] == .6268).all()
assert (aug8_libor[aug8_libor['Tenor'] == '3 Month']['USD ICE LIBOR'] == .8065).all()
assert (aug8_libor[aug8_libor['Tenor'] == '6 Month']['USD ICE LIBOR'] == 1.1852).all()
assert (aug8_libor[aug8_libor['Tenor'] == '1 Year']['USD ICE LIBOR'] == 1.5081).all()
assert aug8_libor.overnight == .4189
assert aug8_libor.one_week == .4431
assert aug8_libor.one_month == .5119
assert aug8_libor.two_month == .6268
assert aug8_libor.three_month == .8065
assert aug8_libor.six_month == 1.1852
assert aug8_libor.one_year == 1.5081
london_tz = pytz.timezone('Europe/London')
actual = london_tz.localize(datetime(2016, 8, 8, 11, 45, 6))
assert (aug8_libor['Publication Time'] == actual).all()
assert aug8_libor.publication == actual
def test_correct_libor_Aug9_2010(self):
# Validate with:
# https://www.theice.com/marketdata/reports/icebenchmarkadmin/ICELiborHistoricalRates.shtml?excelExport=&criteria.reportDate=8%2F9%2F10&criteria.currencyCode=USD
aug9_libor = USDLibor.retrieve_data(datetime(2010, 8, 9))
aug9_libor = LiborRateTask.retrieve_data(datetime(2010, 8, 9), 'USD')
assert aug9_libor.overnight == .23656
assert aug9_libor.one_week == .27725
assert aug9_libor.one_month == .29
assert aug9_libor.two_month == .3375
assert aug9_libor.three_month == .40438
assert aug9_libor.six_month == .6275
assert aug9_libor.one_year == .995
assert (aug9_libor[aug9_libor['Tenor'] == 'Overnight']['USD ICE LIBOR'] == .23656).all()
assert (aug9_libor[aug9_libor['Tenor'] == '1 Week']['USD ICE LIBOR'] == .27725).all()
assert (aug9_libor[aug9_libor['Tenor'] == '1 Month']['USD ICE LIBOR'] == .29).all()
assert (aug9_libor[aug9_libor['Tenor'] == '2 Month']['USD ICE LIBOR'] == .3375).all()
assert (aug9_libor[aug9_libor['Tenor'] == '3 Month']['USD ICE LIBOR'] == .40438).all()
assert (aug9_libor[aug9_libor['Tenor'] == '6 Month']['USD ICE LIBOR'] == .6275).all()
assert (aug9_libor[aug9_libor['Tenor'] == '1 Year']['USD ICE LIBOR'] == .995).all()
london_tz = pytz.timezone('Europe/London')
actual = london_tz.localize(datetime(2010, 8, 9, 15, 49, 12))
assert (aug9_libor['Publication Time'] == actual).all()
assert aug9_libor.publication == actual
def test_correct_date_reasoning(self):
# Make sure I document how to handle datetime issues in the future