Тестовый класс Python застрял на «Создании экземпляров тестов»Python

Программы на Python
Anonymous
Тестовый класс Python застрял на «Создании экземпляров тестов»

Сообщение Anonymous »

Мой тестовый класс создает требуемый график, но мне каждый раз приходится вручную останавливать выполнение — консоль продолжает показывать «Создание экземпляров тестов»; может ли кто-нибудь понять, почему казнь никогда не останавливается? Буду также признателен за любые советы по повышению «Pythonic» моего кода!

(Python 3.5 работает в PyCharm CE 2016.2.1 на Mac OS X 10.11.6)< /p>

# A program to test various sorting algorithms. It generates random lists of various sizes,
# sorts them, and then tests that:
# a. the list is in ascending order
# b. the set of elements is the same as the original list
# c. record the time taken

import random
import timeit
from unittest import TestCase

import matplotlib.pyplot as plt

from Sorter import insertionsort, mergesort, quicksort

class TestSort(TestCase):
def test_sorting(self):

times_insertionsort = [] # holds the running times for insertion sort
times_quicksort = [] # holds the running times for quick sort
times_mergesort = [] # holds the running times for merge sort
lengths = [] # holds the array lengths

# determine the number of lists to be created
for i in range(0, 13):

# initialise a new empty list
pre_sort = []

# determine the list's length, then populate the list with 'random' data
for j in range(0, i * 100):
pre_sort.append(random.randint(0, 1000))

# record the length of the list
lengths.append(len(pre_sort))

# record the time taken by quicksort to sort the list
start_time = timeit.default_timer()
post_quicksort = quicksort(pre_sort)
finish_time = timeit.default_timer()
times_quicksort.append((finish_time - start_time) * 1000)

# record the time taken by insertionsort to sort the list
start_time = timeit.default_timer()
post_insertionsort = insertionsort(pre_sort)
finish_time = timeit.default_timer()
times_insertionsort.append((finish_time - start_time) * 1000)

# record the time taken by mergesort to sort the list
start_time = timeit.default_timer()
post_mergesort = mergesort(pre_sort)
finish_time = timeit.default_timer()
times_mergesort.append((finish_time - start_time) * 1000)

# check that:
# a. the list is in ascending order
# b. the set of elements is the same as the original list
for k in range(0, len(pre_sort) - 1):
self.assertTrue(post_insertionsort[k] in pre_sort)
self.assertTrue(post_insertionsort[k]

Подробнее здесь: https://stackoverflow.com/questions/389 ... ting-tests

Вернуться в «Python»