Opened 4 years ago

Closed 4 years ago

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

HW #3 subbotina.olesya

Reported by: subbotina.olesya Owned by: Дмитрий Лапшин (lapshin)
Component: HW #3 (Huffman) Version: 3.0
Keywords: Cc:

Description


Change History (5)

comment:1 Changed 4 years ago by subbotina.olesya

У меня, кажется, небольшая беда с запуском тестов. Я там закомментила мэйн в доктесте и вставила его в testMain, потому что по-другому оно не работало (точнее, я не смогла заставить его заработать)))

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

Summary: HW #3 Subbotina OlesyaHW #3 subbotina.olesya
Type: ожидается проверкаожидаются исправления
Version: 1.02.0

Корректность: ни один тест не прошло. Причины разные.
Падает на сжатии. Или не восстанавливает оригинал. Общей причины не увидел. Валгринд орёт.

Тесты: ошибки вполне понятные. Два мейна ему не нравятся. Ну и дальше есть другие ошибки, вполне очевидные.

Стиль:

  1. Пространства имён?
  2. Ты не инициализируешь все поля классов, об этом орёт CLion.
  3. Ещё встречаются небезопасные операции с битами.
  4. Может инициализировать вместо присваивания?
    explicit HuffmanAlgoException(std::string msg) {
        message_ = std::move(msg);
    } 
    
    Более того... А зачем поле message_ если ты не перегружаешь what()? А где-то переопределяешь, но без override.
  5. CLI: string_view, operator ==.
  6. Построение дерева как-то сложно. Там же по идее завести сет/кучу узлов, собирать из них пока их хотя бы 2, и всё? Кстати, вектор уникальных указателей скорее всего хуже, чем вектор просто значений.

4/8.

Архитектура:

  1. Зачем классу CLI конструктор по умолчанию и конструктор с тремя параметрами? Кажется, если есть один, другой не имеет смысла. Если метод parse заполняет его состояние, зачем конструктор от 3х? Если он должен быть конструктором, зачем оба?
  2. Аналогично, код вида вызвать конструктор и проиницилизировать поля потом вызывает вопросы в дереве.
  3. Константа в 256 кажется от чего-то вычесленна.
  4. Публичные поля точно нужны?

2/5.

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

Owner: changed from Дмитрий Лапшин (lapshin) to subbotina.olesya

comment:4 Changed 4 years ago by subbotina.olesya

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

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

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

Корректность: иногда работает. Учитывая ошибки валгринда, надо смотреть в них. Плохой порядок аргументов убил наповал. В основном падает, на пустом файле просто ничего не сделало. 4/9.

Тесты: они сами не собрались. Сами по себе ок, но кажется крайние случаи проверять не очень хотят. 6/8.

Стиль:

  1. Пространства имён?
  2. inline у методов внутри определения класса и так подразумевается.
  3. Код построения дерева всё ещё ад.
  4. Вызов a.operator <(b).

5/8.

Архитектура:

  1. Вообще, класс Archiver с двумя полями, которые то инициализируются, то нет, напрягает. Кажется, если есть что сжимать, и есть куда, то можно всегда оба, и без указателей всяких.
  2. Число полей класса вызывает вопросы: они всегда нужны, или только в процессе построения?

3/5.

Note: See TracTickets for help on using tickets.