init: company-haness 설계
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
"""Running statistics — contains a bug in `median` for even-length inputs.
|
||||
|
||||
The bug: for an even number of elements, `median` returns the lower-middle element
|
||||
instead of the average of the two middle elements. `mean` is correct.
|
||||
"""
|
||||
|
||||
|
||||
def mean(xs):
|
||||
return sum(xs) / len(xs)
|
||||
|
||||
|
||||
def median(xs):
|
||||
s = sorted(xs)
|
||||
n = len(s)
|
||||
mid = n // 2
|
||||
return s[mid] # BUG: even-length should average s[mid-1] and s[mid]
|
||||
@@ -0,0 +1,14 @@
|
||||
from stats import mean, median
|
||||
|
||||
|
||||
def test_mean():
|
||||
assert mean([2, 4, 6]) == 4
|
||||
|
||||
|
||||
def test_median_odd():
|
||||
assert median([3, 1, 2]) == 2
|
||||
|
||||
|
||||
def test_median_even():
|
||||
assert median([1, 2, 3, 4]) == 2.5 # average of the two middle elements
|
||||
assert median([10, 20]) == 15
|
||||
Reference in New Issue
Block a user