Решение на Дигитален корен от Катерина Манева
Обратно към всички решения
Към профила на Катерина Манева
Резултати
- 20 точки от тестове
- 1 бонус точка
- 21 точки общо
- 6 успешни тест(а)
- 0 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20200111-2173579-1pd3bzl/solution)
Finished test [unoptimized + debuginfo] target(s) in 3.17s
Running target/debug/deps/solution-a73e64ec87929bd0
running 2 tests
test tests::test_correct_input ... ok
test tests::test_num_to_string ... ok
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-38971695424b36d5
running 6 tests
test solution_test::test_binary ... ok
test solution_test::test_decimal_basic ... ok
test solution_test::test_hex_basic ... ok
test solution_test::test_invalid ... ok
test solution_test::test_octal_basic ... ok
test solution_test::test_zeroes ... ok
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
История (1 версия и 5 коментара)
Катерина качи първо решение на 05.11.2019 11:32 (преди почти 6 години)
Имаш някоя и друга дупка в тестовете. Примерно, добре проверяваш за невалиден вход за няколко бройни системи, но за двоична бройна система имаш само положителни примери. Все пак са някакви тестове и ще ти дам точка за тях, но за следващото домашно ще съм по-придирчив за бонусите :).
Вместо да връщаш
char
, може би щеше да е по-удобно директно да връщашu32
като извикаш.to_digit(base)
на.chars().next().unwrap()
. Така щеше да си спестиш едно допълнително извикване в индивидуалните методи.Можеше и да избегнеш
.unwrap
-овете (или поне част от тях) като върнешNone
ако не проработят. Т.е. вместо да валидираш в отделна функция, спокойно можешеdigital_root
да върнеOption<char>
(илиOption<u32>
в комбинация с предния съвет) и да сложиш единmatch
statement.Не е необходимо да валидираш, че буквите са малки. В условието казахме "ще подаваме само малки букви, тоест "7b" но не "7B", което не значи, че големите букви са невалидни, просто значи, че ние няма да тестваме с тях, така че не е нужно да проверявате.