PLaG-In / Lab_3_q1

Репозиторий для 3 лабы 1 задания
0 stars 0 forks source link

Замечания по программе "Автомобиль" #1

Open alexey-malov opened 9 years ago

alexey-malov commented 9 years ago

Класс следует назвать CCar, а не CCarSet. Не путать с телевизором:

A television set, also called a television receiver, television, TV set, TV, or telly, is a device that combines a tuner, display, and loudspeakers for the purpose of viewing television. http://en.wikipedia.org/wiki/Television_set

alexey-malov commented 9 years ago
    enum direction
    {
        BACK,
        STAND,
        STRAIGHT
    };

имена enum-ов по соглашению должны использовать UpperCamelCase

alexey-malov commented 9 years ago
    struct range
    {
        int min;
        int max;
    };

Имена структур по соглашению должны использовать UpperCamelCase

alexey-malov commented 9 years ago

Тесты проверяют лишь малую часть требований, описанных в спецификации.

А те, что есть, просто проверяют коды возврата (true/false), не проверяя фактическое состояние объекта после вызова метода, изменяющего состояние объекта

alexey-malov commented 9 years ago

В коде класса CCar постарайтесь избавиться от магических констант -1 и 5, 150 и т.п. используя именованные константы для хранения минимальной и максимальной передачи, максимальной скорости и т.п.

alexey-malov commented 9 years ago

за исполнение: 0,7 за срок: 0,6 (судя по истории коммитов, основная часть работ была сделана после 22 апреля).

alexey-malov commented 9 years ago
BOOST_AUTO_TEST_CASE(CanChangingGearAndSpeed)
{
    BOOST_CHECK(car.SetGear(-1));
    BOOST_CHECK_EQUAL(car.GetGear(), -1);
    BOOST_CHECK(car.SetSpeed(10));
    BOOST_CHECK_EQUAL(car.GetSpeed(), 10);
    BOOST_CHECK(car.SetSpeed(21));
    BOOST_CHECK_EQUAL(car.GetSpeed(), 0);

В спецификации ничего не сказано о том, что автомобиль должен остановиться, если скорость движения выходит за пределы допустимой. В данном случае автомобиль должен продолжать двигаться в обратном направлении с последней валидной скоростью (10 км/ч)

alexey-malov commented 9 years ago
    BOOST_CHECK_EQUAL(car.GetSpeed(), 0); //!!!

    BOOST_CHECK(car.SetGear(0));
    BOOST_CHECK_EQUAL(car.GetGear(), 0);
    BOOST_CHECK(car.SetSpeed(10));                  // !!! 
    BOOST_CHECK_EQUAL(car.GetSpeed(), 10); // Тут скорость должна остаться прежней

Это поведение по меньшей мере странно, т.к. на нейтрали нельзя увеличить с 0 до 10

alexey-malov commented 9 years ago

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