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)