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))
def test_small(self): for array in [ ([1, 2, 3]), ([3, 2, 1]), ]: self.assertEqual(compute_inversions(array), compute_inversions_naive(array))
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)
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)
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)