Opened 3 years ago
Closed 3 years ago
#711 closed ожидается проверка (задача сдана)
HW #2
Reported by: | Азат Валеев | Owned by: | Святослав Власов |
---|---|---|---|
Component: | HW #3 (Huffman) | Version: | 2.0 |
Keywords: | Cc: |
Description
Реализована базовая версия архиватора: тестов нема, исключений -- тоже.
Change History (4)
comment:1 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 3 years ago by
Version: | 1.0 → 2.0 |
---|
Сейчас алгоритм должен работать (ну, пожалуйста :с)
Появились исключения, появились тесты.
- В
TNode
иHuffTree
намерено использую обычные указатели, вся выделяемая память -- на векторе_node_storage
.
- Убрал бессмысленную проверку на соответствие количества аргументов, переданных командной строке.
- Убрал операторы присваивания/конструкторы копирования, без них тоже хорошо.
comment:3 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:4 Changed 3 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Все тесты на корректность прошли.
По стилю:
Используй константные ссылки в аргументах если не собираешься их менять!
Меньше magic numbers. В <climit>
есть константа CHAR_BIT
, которую лучше юзать вместо 8
. Дело не в том, что твой код будет собираться под платформу, где в байте не 8 бит, а в том, что при чтении твоего кода так проще понять что какая цифра обозначает.
По тестам:
Вот так лучше не писать: CHECK(huff_tree._hufftree->_left->_ch == 0xAB);
. Если дерево будет иметь не такой вид как ты ожидаешь, то тесты упадут по сегфолту и будет сложно понять в каком месте это случилось. Лучше перед этим поставить REQUIRE(huff_tree._hufftree->left);
В остальном всё очень клёво
15/5/10
Тесты на корректность стабильно ловят сегфолты на декомпрессии :(
shared_ptr
? Ты где-то собираешься разделять владение?Крайне бессмысленная конструкция.