def testCSBottomNSecurityValueHolder(self):
        benchmark = SecurityLatestValueHolder(x='close')
        n = 2
        topnHolder = CSBottomNSecurityValueHolder(benchmark, n)

        for i in range(len(self.datas['aapl']['close'])):
            data = {
                'aapl': {
                    Factors.CLOSE: self.datas['aapl'][Factors.CLOSE][i],
                    Factors.OPEN: self.datas['aapl'][Factors.OPEN][i]
                },
                'ibm': {
                    Factors.CLOSE: self.datas['ibm'][Factors.CLOSE][i],
                    Factors.OPEN: self.datas['ibm'][Factors.OPEN][i]
                },
                'goog': {
                    Factors.CLOSE: self.datas['goog'][Factors.CLOSE][i],
                    Factors.OPEN: self.datas['goog'][Factors.OPEN][i]
                },
                'baba': {
                    Factors.CLOSE: self.datas['baba'][Factors.CLOSE][i],
                    Factors.OPEN: self.datas['baba'][Factors.OPEN][i]
                }
            }
            benchmark.push(data)
            topnHolder.push(data)
            benchmarkValues = benchmark.value
            np.testing.assert_array_almost_equal(
                benchmarkValues.rank().values <= n, topnHolder.value.values)
Exemple #2
0
def CSBottomN(x, n, groups=None):
    return CSBottomNSecurityValueHolder(x, n, groups)