def test_count(self): a = [3, 2] n = count_inversions(a) self.assertEqual(1, n) self.assertEquals([2, 3], a) a = [54044, 14108, 79294, 29649, 25260] n = count_inversions(a) self.assertEquals([14108, 25260, 29649, 54044, 79294], a) self.assertEquals(6, n)
def runTest(self): tenReverseSorted = [10,9,8,7,6,5,4,3,2,1] expectedInversions = len(tenReverseSorted) * (len(tenReverseSorted) - 1) / 2 actualInversions, mergeSorted = count_inversions(tenReverseSorted) print(actualInversions) print(mergeSorted) self.assertEqual(expectedInversions, actualInversions, "count_inversions returned invalid result!") self.assertEqual(0, count_inversions([])[0], "count_inversions returned invalid result!") self.assertEqual(0, count_inversions([1])[0], "count_inversions returned invalid result!") self.assertEqual(1, count_inversions([2,1])[0], "count_inversions returned invalid result!") self.assertEqual(4, count_inversions([4,3,40,30,400,300,4000,3000])[0], "count_inversions returned invalid result!")
def test_count_empty_array(self): self.assertEqual(0, count_inversions([]))