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])