class RateAnalyser(WinAnalyser): def __init__(self): super(RateAnalyser, self).__init__() self.timeAndGold = AnalysisTree(2, WinAnalyser, {1: anyValueTime, 2: anyValueGold}) def analyze(self, data): WinAnalyser.analyze(self, data) timeStep = getTimeSection(data.timeStamp) goldDiff = getGoldSection(data.goldDiff) self.timeAndGold.analyze((goldDiff, timeStep), data) def result(self): timeAndGoldTable = [self.timeAndGold.result(keys) for keys in product(possibleGoldValues, possibleTimeValues)] timeTable = [self.timeAndGold.result(keys) for keys in product((anyValueGold,), possibleTimeValues)] goldTable = [self.timeAndGold.result(keys) for keys in product(possibleGoldValues, (anyValueTime,))] winStatistic = self.timeAndGold.result((anyValueGold, anyValueTime)) return TimeGoldSpread(timeAndGoldTable, timeTable, goldTable, winStatistic)