Найти - Пользователи
Полная версия: тесты: таблица умножения как тестировать, assert-ы не помогают
Начало » Python для новичков » тесты: таблица умножения как тестировать, assert-ы не помогают
1
Florenzo
вот кривая таблица умножения:

  
for y in range(1,11):
    for z in range(1,11):
          print(z*y, end=" ")
    print() #

вот нормальная таблица:

 for y in range(1,11):
    for z in range(1,11):
          d = str(z*y).rjust(3)
          print(d, end=" ")
    print()

как я могу написать тесты, чтобы любая “кривая” таблица вываливала ошибку,
а “нормальная” проходила. В идеале - с разными размерами.

Смотрел и doctest-ы и unittest-ы, вижу, что с помощью всяких assertEqual-ов эту проблему не решить.
А как?

разве что по каждой строке return делать и сравнивать - но зело громоздко это!

py.user.next
1 2 3 4 5 6 7 8 9 10 
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100

1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Самый простой тест - это определить символьную длину первой строки и сравнить её с символьными длинами остальных строк. Если хоть одна строка по длине не равна первой строке, то таблица неправильная.
Florenzo
Спасибо за идею, реализовал с помощью простых assert-ов. без док- и юнит-
как раз тут, наверно самое то.


py.user.next
Используй py.test для юнит-тестирования на питоне.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB