import sorting from random import randint DEBUG_OUTPUT = True def test_mergeSort(pruebas): FAIL = False print("\nProbando MergeSort") for nombre, lista in pruebas.items(): if sorting.mergeSort(lista) == sorted(lista): print(f"{nombre}: " + "Pass") else: print(f"{nombre}: " + "Fail") FAIL = True if FAIL == True and DEBUG_OUTPUT == True: print("\n Test FAIL OUTPUT for MergeSort") for nombre, lista in pruebas.items(): print(f"{nombre}: Obtained -> {sorting.mergeSort(lista)} | Expected -> {sorted(lista)}") def test_quickSort(pruebas): FAIL = False print("\nProbando QuickSort") for nombre, lista in pruebas.items(): if sorting.quickSort(lista) == sorted(lista): print(f"{nombre}: " + "Pass") else: print(f"{nombre}: " + "Fail") FAIL = True if FAIL == True and DEBUG_OUTPUT == True: print("\n Test FAIL OUTPUT for QuickSort") for nombre, lista in pruebas.items(): print(f"{nombre}: Obtained -> {sorting.quickSort(lista)} | Expected -> {sorted(lista)}") def test_shellSort(pruebas): FAIL = False print("\nProbando ShellSort") for nombre, lista in pruebas.items(): if sorting.shellSort(lista) == sorted(lista): print(f"{nombre}: " + "Pass") else: print(f"{nombre}: " + "Fail") FAIL = True if FAIL == True and DEBUG_OUTPUT == True: print("\n Test FAIL OUTPUT for ShellSort") for nombre, lista in pruebas.items(): print(f"{nombre}: Obtained -> {sorting.shellSort(lista)} | Expected -> {sorted(lista)}") def main(): PRUEBAS = {"Enteros":[0,7,3,1,4,5,2], "Negativos":[8,-1,3,2,-4,9], "Aleatorios":[randint(-49,50) for r in range(10)], "Vacia":[], "Ordenada":[1,2,3,4,5,6,7]} test_mergeSort(PRUEBAS) test_quickSort(PRUEBAS) test_shellSort(PRUEBAS) if __name__ == "__main__": main()