def median(data): copy = data[:] copy.sort() midIndices = ListUtils.middleIndices(data) contributor = [] for i in midIndices: contributor.append(copy[i]) return sum(contributor) / float(len(contributor))
def testMiddleIndices_empty(self): self.assertEqual(ListUtils.middleIndices([]), [])
def testMiddleIndices_evenNumberOfItems(self): self.assertEqual(ListUtils.middleIndices([1, 2, 3, 4]), [1, 2])
def testMiddleIndices_singleItem(self): self.assertEqual(ListUtils.middleIndices([1]), [0])
def testMiddleIndices_distinctMedian(self): self.assertEqual(ListUtils.middleIndices([1, 2, 3]), [1])