Opened 3 years ago

Closed 3 years ago

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

HW #2 (Huffman) efremov.andrej

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

Description


Change History (5)

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

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

Корректность: вообще работает, но числа печатает часто странные (особенно забавляют -1). Видимо на разжатии у тебя другие размеры откуда-то, они отличаются на единички. 12.

Тесты:

  1. Рандомные тесты не очень ок.
  2. Ты проверяешь что сжалось и расжалось, это хорошо. Но не тестируешь статистику сообщаемую.

3.

Стиль:

  1. using NodePtr = std::unique_ptr<class TreeNode>; Впервые вижу использование этого приёма. Давай чуть добрее к психике читающего будем и класс объявим строчкой выше)
  2. А слабо указателей на детей запихать в список инициализации?
  3. Мне очень не нравится что ты построил на наследовании. У тебя есть методы, которые реализуются, очевидно, лишь в одном из наследников, иначе они кидают/возвращают мусор. Так может и не надо их в родителе? (Может вообще наследование не нужно?)
  4. Конструктор HuffmanArchiver и статик-метод: это выглядит очень странно. То есть я его создаю и он уже готовится сжимать, но если создать сбоку то нет? Сделай как-то унифицированно.
  5. Кстати пространства имён.
  6. Объявлять переменные вне try в мейне зачем? Тащи внутрь. Очень нравится что на ошибку код возврата всё ещё ноль.

6.

comment:2 Changed 3 years ago by Andrey Efremov

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

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

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

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

Тесты: Я вообще имел в виду что тесты могут проверять, что на таком-то вводе получается такая-то конкретная статистика. А ещё можно потестить, в теории, какое дерево строится, например. 4.

Стиль:

  1. const int CHAR_NUMBER = 256; давай стандартные константы привяжем сюда. Причём плюсовые.
  2. Это ломает правила priority_queue, к сожалению.
    NodePtr pop(std::priority_queue<NodePtr, std::vector<NodePtr>, NodeComparator> &queue) {
        NodePtr node = std::move(const_cast<NodePtr &>(queue.top()));
        queue.pop();
        return node;
    }
    

8.

На фиксы есть плюс пара дней.

comment:4 Changed 3 years ago by Andrey Efremov

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

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

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

Всё ок.

Note: See TracTickets for help on using tickets.