def test_calc_sma(self, patched_rolling_mean): # for some reason, the test doesn't pass when I directly pass in # self.stock.data['Adj Close'] to the assert_called_with function. It # bombs out somewhere deep in Pandas... I'll need to figure that out later adj_close = self.stock.data['Adj Close'] Stock.calc_sma(self.stock, 3) patched_rolling_mean.assert_called_with(adj_close, 3) assert(isinstance(self.stock.data['sma3'], Series) is not None)
def test_NaN(self): Stock.calc_sma(self.stock,3) # After calculating an average, ensure their are NaNs in the right places assert(pd.isnull(self.stock.data.iloc[0]['sma3'])) assert(not pd.isnull(self.stock.data.iloc[2]['sma3'])) shape_before_clearing = self.stock.data.shape # tuple of (rows, columns) Stock.clear_NaN(self.stock) # assert the number of rows decreases by 2 assert(self.stock.data.shape[0] == shape_before_clearing[0] - 2) # assert the number of columns remains the same assert(self.stock.data.shape[1] == shape_before_clearing[1]) # Ensure there are no more NaNs. assert(not pd.isnull(self.stock.data.iloc[0]['sma3']))