Решение на CSS Цветове от Теодор Кирилов
Резултати
- 20 точки от тестове
- 0 бонус точки
- 20 точки общо
- 5 успешни тест(а)
- 0 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20230111-3772066-87afg3/solution) Finished test [unoptimized + debuginfo] target(s) in 0.74s Running tests/solution_test.rs (target/debug/deps/solution_test-0edbea2040daef01) running 5 tests test solution_test::test_invert_hsv ... ok test solution_test::test_hsv_display ... ok test solution_test::test_invert_rgb ... ok test solution_test::test_rgb_display ... ok test solution_test::test_new_hsv ... ok test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
История (3 версии и 3 коментара)
Теодор качи решение на 27.10.2022 12:22 (преди почти 3 години)
Теодор качи решение на 27.10.2022 12:25 (преди почти 3 години)
Има и по-прост начин да форматираш шестнадесетични числа -- можеш да видиш моето решение примерно. Не е проблем да си напишеш собствено решение, разбира се.
Погледнах си решението и видях, че във функцията pub fn decimal_to_hex(number:u16) -> String , трябва да е u8 не u16 и също тогава няма нужда да се конвертират от u8 към u16 red, green, blue в тази част от кода(ред 87-89):
rgb_string.push_str(&decimal_to_hex(*red as u16));
rgb_string.push_str(&decimal_to_hex(*green as u16));
rgb_string.push_str(&decimal_to_hex(*blue as u16));
а ще стане:
rgb_string.push_str(&decimal_to_hex(*red));
rgb_string.push_str(&decimal_to_hex(*green));
rgb_string.push_str(&decimal_to_hex(*blue));
Малко ми се е преплело мисленето когато съм я писал заради това, че на HSV hue e u16 :D
Да, конвертиране не ти трябва. Иначе един проблем на кода е, че стилово си доста неконсистентен. Тук-таме има интервали около =
, тук таме няма, индентацията понякога мърда напред-назад. Ако ти е трудно да поддържаш консистентност при редактиране, едно решение може да е да си ползваш rustfmt инструмента да ти подрежда кода автоматично.
Обмислях дали да ти дам бонус точка за тестовете -- покрил си трите възможни паники при конструиране на HSV, също и няколко смислени случая за форматиране. Но едно нещо, което си изпуснал, са тестове за паника на unwrap_
методите. Другото, което не ми харесва на тях е, че нямат смислени имена -- не е нужно да бъдат перфектно описателни, но примерно my_test6
е доста неудобно име. Ако гръмне тест на име test_invert_hsv
може доста лесно да се сетиш каква логика тества, за разлика от my_test6
.
Все пак оценявам усилието, може би за следващото домашно :).
Има и по-прост начин да форматираш шестнадесетични числа -- можеш да видиш моето решение примерно. Не е проблем да си напишеш собствено решение, разбира се.