def get_pre_and_post_returns(args, day, prices): """ Append pre and post return data """ try: pre_start = cruncher.get_end_index( prices, day, index=-1 * args.interval ) pre_end = cruncher.get_end_index( prices, pre_start, index=args.interval - 1 ) post_start = cruncher.get_start_index(prices, day, index=1) post_end = cruncher.get_end_index( prices, post_start, index=args.interval - 1 ) except SkipEvaluationError: logger.debug( "The day {} does not support being evaluated".format(day) ) else: logger.debug("Appending to returns") pre_rets.append( (prices[pre_end] - prices[pre_start]) / prices[pre_start] ) post_rets.append( (prices[post_end] - prices[post_start]) / prices[post_start] )
def test_get_end_index_for_close_to_end_of_range(): """ Test discerner.get_end_index for cases where index is close to end of data """ data = range(8) end = get_end_index(data, 0) eq_(data[end], 7) data = range(8) data.append(NARealType()) end = get_end_index(data, 0) eq_(data[end], 7)
def test_get_end_index(): """ Test discerner.get_end_index for success cases """ data = range(15) end = get_end_index(data, 0) eq_(data[end], 13)
def test_get_end_index_for_negative_indexing(): """ Test discerner.cruncher.get_end_index for negative indexing """ data = range(15) end = get_end_index(data, 14, index=-1) eq_(end, 13)
def test_get_end_index_with_nan(): """ Test discerner.get_end_index for success case with nan value """ data = range(13) data.append(NARealType()) data.extend([14, 15]) end = get_end_index(data, 0) eq_(data[end], 12)
def test_get_end_index_for_error(): """ Test discerner.get_end_index for error case """ data = [1, NARealType()] get_end_index(data, 0)