add an if to check if the number is positive.”;! ! var pattern = function() {! var $numVar = $numVal;! ! if ($numVar > 0) {! rect($x, $y, $w, $h);! }! };! ! result = match(pattern);! ! if (passes(result)) {! var goodX = structure(pattern, inRange(“$x”, 10, 20));! if (!matches(goodX)) {! result = fail(“Hm, does your rect start on the side?”);! }! }! assertMatch(result, descrip, displayP);! });!
of Wilson score 90% confidence interval.! ! This is the algorithm Reddit uses to sort comments.! You should not use this if downvotes are disallowed - it is only useful in! the presence of both upvotes and downvotes because its ranking is based on! an estimate of the ratio of upvotes to downvotes.! ! See http://www.evanmiller.org/how-not-to-sort-by-average-rating.html! """! upvotes = getattr(score, upvotes_name)! downvotes = getattr(score, downvotes_name)! if upvotes == 0:! return -downvotes! elif upvotes == downvotes:! return 0! n = upvotes + downvotes! z = 1.64485 # 90% confidence z-score! phat = float(upvotes) / n # p-hat! return ((phat + z * z / (2 * n) - z *! math.sqrt((phat * (1 - phat) + z * z / (4 * n)) / n))! / (1 + z * z / n))! class TimeIndependentScoreProperty(ndb.ComputedProperty):! ! def __init__(self, upvotes_name="upvotes", downvotes_name="downvotes",! **kwargs):! super(TimeIndependentScoreProperty, self).__init__(! functools.partial(wilson_confidence, upvotes_name, downvotes_name),! **kwargs)! !
"""Ranking based on both age and quality.! ! This is the algorithm Reddit uses to sort stories. We want there to be! churn, a constant stream of new programs hitting the hot page,! so this algorithm takes into account both the score of the scratchpad and the age.! See http://amix.dk/blog/post/19588! """! s = getattr(score, upvotes_name) - getattr(score, downvotes_name)! ! # Weight votes logarithmically - initial votes are worth a ton! order = math.log(max(abs(s), 1), 10)! ! sign = 1 if s > 0 else -1 if s < 0 else 0! ! # Seconds since this algorithm's start date ! date = getattr(score, created_name) or datetime.datetime.now()! seconds = epoch_seconds(date) - 1349108492! ! return round(order + sign * seconds / decay_seconds, 7) class TimeDependentScoreProperty(ndb.ComputedProperty):! ! def __init__(self, decay_seconds, upvotes_name="upvotes",! downvotes_name="downvotes", created_name="created", **kwargs):! super(TimeDependentScoreProperty, self).__init__(functools.partial(! time_dependent, decay_seconds, upvotes_name, downvotes_name,! created_name), **kwargs)!
isjunk=lambda x: x in " \t\n",! a=origin_revision.code.strip(),! b=self.revision.code.strip(),! autojunk=True)! ! # Compute the ratio difference between the two revisions! # If the code is really large then we just do a quick ratio! # instead to try and speed up the comparison! if (len(origin_revision.code) > max_ratio_size or! len(self.revision.code) > max_ratio_size):! similarity = diff.quick_ratio()! else:! similarity = diff.ratio() Uh oh, Re-posts!