class SmallGainStat(ListSlotPrimitiveConversion): __slots__ = ('win_given_any_gain', 'win_given_no_gain', 'win_weighted_gain') def __init__(self): self.win_given_any_gain = MeanVarStat() self.win_given_no_gain = MeanVarStat() self.win_weighted_gain = MeanVarStat() def merge(self, other): self.win_given_any_gain.merge(other.win_given_any_gain) self.win_given_no_gain.merge(other.win_given_no_gain) self.win_weighted_gain.merge(other.win_weighted_gain) def avail(self): return self.win_given_any_gain.freq() + self.win_given_no_gain.freq() def __str__(self): return 'a <%s> n <%s> w <%s>' % (self.win_given_any_gain, self.win_given_no_gain, self.win_weighted_gain) def to_readable_primitive_object(self): ret = {} for name in self.__slots__: ret[name] = getattr(self, name).to_primitive_object() return ret
def add_outcome(self, tracker_type, ratio, win_points): if tracker_type == 'final': tracker = self.final elif tracker_type == 'progressive': tracker = self.progressive else: raise if ratio not in tracker: tracker[ratio] = MeanVarStat() tracker[ratio].add_outcome(win_points)
def __init__(self): self.available = 0 self.win_any_accum = MeanVarStat() self.win_weighted_accum = MeanVarStat() self.win_weighted_accum_turn = ConvertibleDefaultDict(MeanVarStat, int) self.win_diff_accum = ConvertibleDefaultDict(MeanVarStat, int)
def parse(key): ret = MeanVarStat() ret.from_primitive_object(stats[key]) return ret
def __init__(self): self.win_given_any_gain = MeanVarStat() self.win_given_no_gain = MeanVarStat() self.win_weighted_gain = MeanVarStat()