def test_random(self):
     array = [1, 1, 1]
     if compute_inversions(array)[1] != compute_inversions_naive(array):
         print(array)
     self.assertEqual(
         compute_inversions(array)[1], compute_inversions_naive(array))
     for n in (10, 100):
         for max_value in (1, 2, 10, 10**5):
             array = [randint(0, max_value) for _ in range(n)]
             if compute_inversions(array)[1] != compute_inversions_naive(
                     array):
                 print(array)
             self.assertEqual(
                 compute_inversions(array)[1],
                 compute_inversions_naive(array))
Beispiel #2
0
 def test_small(self):
     for array in [
         ([1, 2, 3]),
         ([3, 2, 1]),
     ]:
         self.assertEqual(compute_inversions(array),
                          compute_inversions_naive(array))
Beispiel #3
0
 def test_random(self):
     for n in (10, 100):
         for max_value in (1, 2, 10, 10 ** 5):
             array = [randint(0, max_value) for _ in range(n)]
             left = compute_inversions_naive(array)
             right = compute_inversions(array)
             self.assertEqual(left, right)
Beispiel #4
0
 def test_small(self):
     for array in [
         ([1, 2, 3]),
         ([3, 2, 1]),
         ([3, 2, 1])
     ]:
         left = compute_inversions_naive(array)
         right = compute_inversions(array)
         self.assertEqual(left, right)
Beispiel #5
0
 def test_large(self):
     self.assertEqual(compute_inversions([1] * 100), 0)
from test_helper import run_common_tests, failed, passed, check_tests_pass
from number_of_inversions import compute_inversions, compute_inversions_naive
from random import randint

if __name__ == '__main__':
    run_common_tests()
    check_tests_pass("number_of_inversions_unit_tests.py")

    all_tests_passed = True
    for n in (3, 4, 5, 10, 100):
        for array in ([1] * n, [n - i for i in range(n)],
                      [i for i in range(n)], [randint(0, n)
                                              for _ in range(n)]):
            if compute_inversions(array) != compute_inversions_naive(array):
                all_tests_passed = False
                failed("Wrong answer for array={}".format(array))
                break

    if all_tests_passed:
        passed()
 def test_large(self):
     self.assertEqual(compute_inversions([1] * 100)[1], 0)
     array = [1 for _ in range(30000)]
     self.assertEqual(compute_inversions(array)[1], 0)
 def test_large(self):
     self.assertEqual(compute_inversions([1] * 100), 0)
     self.assertEqual(compute_inversions([1, 2, 4, 3, 5, 7, 6]), 2)