Opened 3 years ago

Closed 3 years ago

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

HW #2

Reported by: yurko.andrej Owned by: Святослав Власов
Component: HW #3 (Huffman) Version: 2.0
Keywords: Cc:

Description


Change History (3)

comment:1 Changed 3 years ago by Святослав Власов

Type: ожидается проверкаожидаются исправления

Попытка заархировать пустой файл и разархивировать однобайтовый упали с сегфолтом. Многие другие тесты тоже.
В тех тестах, что не засегфолтились, программа отрепортила неправильные размеры файлов. К тому же из отрепорченных данных следует, что сжатые данные оказались больше распакованных.
Еще твоя программа не работает с переставленными и/или полными ключами аргументов.

Стиль:

  1. Тебе тут точно копия нужна? HuffTree::HuffTree(std::vector<std::pair<char, int>> v_of_counts)
  2. Зачем тебе два массива is_found и v_of_counts? Если v_of_counts сделать фиксированного размера 256 и вместо пар там хранить просто частоты, а символом будет индекс, то это сильно упростит код и избавит от необходимости is_found
  3. int size_of_char = 1, size_of_int = 4; Зачем? Во-первых, есть же <climits>: https://www.cplusplus.com/reference/climits/ а во-вторых размер инта -- это не обязательно 4 байта. Под другой платформой у тебя всё рухнет.

Тестов не нашел.

Пока это 0

comment:2 Changed 3 years ago by yurko.andrej

Type: ожидаются исправленияожидается проверка
Version: 1.02.0

comment:3 Changed 3 years ago by Святослав Власов

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

Падает тест на однобайтовом файле содержащем 0x01
На файле, содержащем все байты последовательно от 0x00 до 0xff после компрессии размер сжатых данных на 1 байт больше, чем размер исходных
На переставленных аргументах программа не работает.

Пора отходить от ручного управления памятью и использовать умные указатели.
Много Magic Numbers

Почему два мейкфайла в директории?
Тестов мало. Отчасти потому, что функции у тебя монструозные, их было бы неплохо декомпозировать.

10/4/7

Note: See TracTickets for help on using tickets.