Opened 4 years ago

Closed 4 years ago

#737 closed ожидается проверка (задача сдана)

HW #2 vorobeva.polina

Reported by: vorobeva.polina Owned by: Дмитрий Лапшин (lapshin)
Component: HW #2 (X0) Version: 3.0
Keywords: Cc:

Description

Реализовано 17 тестов для проверки модели (Board), все - на public-функции. Есть еще 4 private-функции, которые вряд ли имеет смысл делать публичными. Но как тогда написать на них тесты? (Сами функции участвуют в поиске выигрышных ситуаций, т.е. по большому счету проверяются в тестах на завершение игры...)

Не реализованы тесты для View... Я не очень понимаю, как можно проверить, что именно они печатают в поток. Ну, и там тоже есть проблема с public/private функциями.

Вообще, имеет смысл конкретно в этой домашке следить за тем, какие функции должны быть публичными, а какие приватными?

Change History (3)

comment:1 Changed 4 years ago by Дмитрий Лапшин (lapshin)

Owner: changed from Дмитрий Лапшин (lapshin) to vorobeva.polina
Summary: HW #2HW #2 vorobeva.polina
Type: ожидается проверкаожидаются исправления

Мудрое замечание. Видимо никак. Можно делать публичный интерфейс и невидимую пользователю реализацию, которая всё наружу выставляет. Некоторые языки разрешают тестам нарушать видимость.

И не надо тестировать вьюху, читай задание.

Всегда полезно следить.

Корректность:

  1. Почему на каждом моём тесте выход ненулевой?
  2. Определение состояния игры лажает.
  3. На плохие ходы падает.

8.

Тесты: 5.

Стиль:

  1. Перечисление DIR, если и нужно, имеет имя не в общем стиле.
  2. is_draw: выглядит очень странно.
  3. getGameField почему-то возвращает какой-то int.
  4. View почему-то не называется StdioBoardView.
  5. View должна хранить ссылку.
  6. Магические константы!
  7. Я б на твоём месте завёл массив направлений, по которым ходить, вместо всего семейства функций перебирающих направления.
  8. Код дублируется.
  9. canMove падает по ассёртам.
  10. bool mode хорошее имя.
  11. Пробелы местами.
  12. Что за точка с запятой после метода?

6.

comment:2 Changed 4 years ago by vorobeva.polina

Owner: changed from vorobeva.polina to Дмитрий Лапшин (lapshin)
Type: ожидаются исправленияожидается проверка
Version: 2.03.0

Спасибо за подсказку про проверку выигрышных комбинаций:) Но скорее всего, то, что получилось в итоге - что-то среднее между тем, что было и оптимальной проверкой) - 4 отдельные функции, каждая проверяет свое направление. Нет семейства чекеров и enum'а для направлений. Функции хоть и отдельные (и скорее всего с дублированием кода), но выглядят намного аккуратнее, чем было:)
Убран странный is_draw)
Переименованы некоторые методы и поля)
Стилистические пункты 4, 5, 9, 12 тоже исправлены.
Вроде починен ввод, но может быть что-то все-таки забыла учесть...

Реализовано еще 2 теста, чтобы было круглое число (по-моему, они разбирают прикольные случаи...)

P.S.: Простите:( Решила проверить, как hw работает под valgrind'ом, а он сильно-сильно ругался... Исправила и закоммитила после дэдлайна:/

Last edited 4 years ago by vorobeva.polina (previous) (diff)

comment:3 Changed 4 years ago by Дмитрий Лапшин (lapshin)

Resolution: задача сдана
Status: assignedclosed

Корректность:

  1. Принимаешь совсем плохие ходы.
  2. Не всегда правильно определяется конец игры.

8.

Тесты: ну они у тебя падают. 4.

Стиль:

  1. Неконсистентный стиль имён методов.
  2. DO_CHECK не там.
  3. bool silent = 0 ну ох.
  4. Пробелы местами странные.
  5. Магические константы.
  6. Код проверки состояния игры слегка дублируется.
  7. argc == 2 надо бы честнее.
  8. success_rate == 1.0 пусть в очень плохие места, вещественные числа имеют странные понятия точности.

7.

Предыдущая попытка в сумме такая же.

Note: See TracTickets for help on using tickets.