Opened 3 years ago
Closed 3 years ago
#708 closed ожидается проверка (задача сдана)
HW #3 (Huffman) Kozyrev Andrei
Reported by: | Andrei Kozyrev | Owned by: | Антон Филатов |
---|---|---|---|
Component: | HW #3 (Huffman) | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (6)
comment:1 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 3 years ago by
Дьявол
Я обрабатывал отдельно случаи, когда встречается только один символ, но в декодере случайно return стер и поэтому не работало
comment:3 Changed 3 years ago by
А можете инсайд дать, тесты падали только те, в которых один и тот же символ, или где то еще проблемы есть?
comment:4 Changed 3 years ago by
Неймспейсы добавил, волшебных констант поубирал, косяки корректности починил, тестов немного добавил
comment:5 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:6 Changed 3 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
ошибка при сборке осталась
make g++ -c -std=c++17 -Wall -Werror -Wextra src/HuffTree.cpp -o obj/HuffTree.o g++ -c -std=c++17 -Wall -Werror -Wextra src/huffman.cpp -o obj/huffman.o g++ -c -std=c++17 -Wall -Werror -Wextra src/main.cpp -o obj/main.o src/main.cpp: In function ‘std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > checkParams(int, char**)’: src/main.cpp:11:16: error: ‘strcmp’ was not declared in this scope 11 | if(strcmp(argv[i], "-c") == 0) | ^~~~~~ src/main.cpp:2:1: note: ‘strcmp’ is defined in header ‘<cstring>’; did you forget to ‘#include <cstring>’? 1 | #include "huffman.h" +++ |+#include <cstring> 2 | src/main.cpp:13:16: error: ‘strcmp’ was not declared in this scope 13 | if(strcmp(argv[i], "-u") == 0) | ^~~~~~ src/main.cpp:13:16: note: ‘strcmp’ is defined in header ‘<cstring>’; did you forget to ‘#include <cstring>’? src/main.cpp:15:16: error: ‘strcmp’ was not declared in this scope 15 | if(strcmp(argv[i], "-f") == 0 || strcmp(argv[i], "--file") == 0) | ^~~~~~ src/main.cpp:15:16: note: ‘strcmp’ is defined in header ‘<cstring>’; did you forget to ‘#include <cstring>’? src/main.cpp:17:16: error: ‘strcmp’ was not declared in this scope 17 | if(strcmp(argv[i], "-o") == 0 || strcmp(argv[i], "--output") == 0) | ^~~~~~ src/main.cpp:17:16: note: ‘strcmp’ is defined in header ‘<cstring>’; did you forget to ‘#include <cstring>’? Makefile:13: recipe for target 'obj/main.o' failed make: *** [obj/main.o] Error 1
Тесты все проходят.
Стиль:
- когда я говорил про нэймспейсы, я ожидал, что вы введёте отдельные нэймспейсы на классы, которые можно отдавать пользователю, и отдельные - на внутреннюю реализацию
Тесты:
- у вас очень много смоуг тестов. Это, конечно, хорошо, но задача юнит тестов немного в другом. Их цель - понять, не сломалась ли каждая отдельная функция, когда вы обновили функциональность класса. Например, у вас есть класс фигура и методы перемещения, вращения, проверка на принадлежность внутренностям и пр. И вы добавляете логику, например, на масштабирование фигуры. При этом, например, меняете некоторые приватные поля. Меняете так, что перестаёт работать функция проверки на принадлежность внутренностям. Если тесты написаны, как у вас, то всё, что вы увидите - что вот на таких входных данных что-то упало. И надо будет с этими входными данными идти дебагам по всему тестовому кейсу и проверять, что сломалось. А если бы у вас были тесты на каждую отдельную функцию, то запустив такие юнит тесты, вы бы увидели, что юнит тесты по всем функциям работают, как раньше, а именно функция проверки на принадлежность внутренностям теперь не работает. Всё равно надо идти с дебагом, чтобы смотреть, что именно не работает, зато проблема очень быстро локализована.
Корректность: 15/15
Стиль: 8/10
Тесты: 4/5
Note: See
TracTickets for help on using
tickets.
ошибка при сборке
Но это фиксится быстро.
На большинстве тестов выпадаете с сегфотом на этапе декодирования.
Например, на файле
На некоторых не выпадаете, например на таком:
Но при этом при разжатии выводите информацию не в том порядке, в каком требуется по заданию.
Стиль:
Тесты: покрытие нужно больше. Разбейте тест кейсы по классам и не забудьте протестировать каждый разработанный класс.
Пока
Корректность: 3/15
Стиль: 7/10
Тесты: 3/5