Exemple #1
0
    def test_merge_biglist(self):
        size = 300
        left = sorted(sorts.get_values(size))
        right = sorted(sorts.get_values(size))
        values = left + right
        expected = sorted(values)

        sorts.merge(values, 0, size, 2 * size - 1)
        self.assertEqual(expected, values)
Exemple #2
0
 def test_merge(self):
     merge_testcases = ((
         ([1, 2, 3], [4, 5, 6], [1, 2, 3, 4, 5, 6]),
         ([2, 4, 5], [4, 5, 6], [2, 4, 4, 5, 5, 6]),
         ([4, 7, 7], [4, 5, 8], [4, 4, 5, 7, 7, 8]),
         ([4, 7, 7], [4, 5], [4, 4, 5, 7, 7]),
         ([1], [1], [1, 1]),
         ([2], [1], [1, 2]),
         ([1], [2], [1, 2]),
     ))
     for arr1, arr2, expected in merge_testcases:
         self.assertEqual(merge(arr1, arr2), expected,
                          "merge should merge two sorted lists properly")
Exemple #3
0
def test_merge_sort():
    test_array = [randint(0, 10000) for i in range(1, 10**2)]
    result = merge(test_array)
    test_array.sort()
    assert test_array == result
def main(argv):
    data = files.read_lines_of_ints(argv[0])

    print ' '.join(str(item) for item in sorts.merge(data[1], data[3]))
Exemple #5
0
def merge_multi(list_left, list_right):
    manager_list_pi.append(merge(list_left, list_right))
Exemple #6
0
    #print(manager_list_pi)
    #if len(manager_list_pi) > 2:
    #    while len(manager_list_pi) > 0:
    #        #print("length of manager list is ",len(manager_list_pi))
    #        #print(manager_list_pi)
    #        proc = Process( target=merge_multi, args=(manager_list_pi.pop(0),manager_list_pi.pop(0)) )
    #        p.append(proc)
    #    #print(p)
    #    # again starting and joining ( this seems like a pattern, doesn't it ... ? )
    #    for proc in p:
    #        proc.start()
    #    for proc in p:
    #        proc.join()
    #print(manager_list_pi)

    array_pi = merge(merge(manager_list_pi[0], manager_list_pi[3]),
                     merge(manager_list_pi[1], manager_list_pi[2]))
    #array_pi = merge(manager_list_pi[0],manager_list_pi[1])
    final_merge_time = time.time() - start_time_final_merge
    print('Final merge duration : ', final_merge_time)
    multi_core_time = time.time() - start_time
    print("multi core time", multi_core_time)
    print(array_pi == sorted(array))
    #print(sorted(array))
    """   for storing the results
    with open('quick_results.txt','a') as file:
        line1 = "  length of array:  " + str(n)
        line2 = '  pi : pc ratio >  ' +  str(split_ratio) + " : " + str(10 - split_ratio)
        line3 = "  total time taken : " + str(multi_core_time)
        line4 = "  sort truth verification " + str(array_pi == sorted(array))
        file.writelines([line1,line2,line3,line4] """
Exemple #7
0
 def test_mergeempties(self):
     first = []
     second = []
     merged = []
     self.assertEqual(merged, sorts.merge(first,second))
Exemple #8
0
 def test_merge_unbalanced_lists(self):
     first = [1,3,4,6]
     second = [2,5]
     merged = [1,2,3,4,5,6]
     self.assertEqual(merged, sorts.merge(first,second))
Exemple #9
0
 def test_mergeotheremptylist(self):
     first = [1,2,3]
     second = []
     merged = [1,2,3]
     self.assertEqual(merged, sorts.merge(first, second))
Exemple #10
0
 def test_merge(self):
     values = [1, 3, 2, 4, 5]
     sorts.merge(values, 0, 2, 4)
     expected = [1, 2, 3, 4, 5]
     self.assertEqual(values, expected)