Example #1
0
  def preCount(self):
    "MeekNZ STV: prepare for count"
    MeekSTV.preCount(self)
    self.strongTieBreakMethod = "random" # documentation only; we override breakStrongTie()

    self.surplusLimit = self.p / 10000	# 0.0001 per clause 13
    # initialize PRNG per clause 42
    prng = MeekNZSTV.NZprng(c=self.b.numCandidates, n=self.numSeats, v=self.b.numBallots)
    for c in self.continuing:
      rc = prng.next()
      while rc in self.prng_cands.values():
        rc = prng.next()
      self.prng_cands[c] = rc
Example #2
0
    def preCount(self):
        "MeekNZ STV: prepare for count"
        MeekSTV.preCount(self)
        self.strongTieBreakMethod = "random"  # documentation only; we override breakStrongTie()

        self.surplusLimit = self.p / 10000  # 0.0001 per clause 13
        # initialize PRNG per clause 42
        prng = MeekNZSTV.NZprng(c=self.b.numCandidates,
                                n=self.numSeats,
                                v=self.b.numBallots)
        for c in self.continuing:
            rc = prng.next()
            while rc in self.prng_cands.values():
                rc = prng.next()
            self.prng_cands[c] = rc
Example #3
0
 def inInfiniteLoop(self):
   "Detect hangs by looking for at keep factor changes"
   if MeekSTV.inInfiniteLoop(self):
     return True
   if (self.R > 1):
     for kf1, kf2 in zip(self.keepFactor[self.R-2], self.keepFactor[self.R-1]):
       if kf2 > kf1:  # if any keep factor increased, we're in a loop
         return True
   return False
Example #4
0
 def inInfiniteLoop(self):
     "Detect hangs by looking for at keep factor changes"
     if MeekSTV.inInfiniteLoop(self):
         return True
     if (self.R > 1):
         for kf1, kf2 in zip(self.keepFactor[self.R - 2],
                             self.keepFactor[self.R - 1]):
             if kf2 > kf1:  # if any keep factor increased, we're in a loop
                 return True
     return False