Решение на Matrix 4 от Димитър Георгиев
Към профила на Димитър Георгиев
Резултати
- 20 точки от тестове
- 0 бонус точки
- 20 точки общо
- 15 успешни тест(а)
- 0 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20220112-2706256-1bz7yh4/solution) warning: function is never used: `string_cell_vec` --> src/lib.rs:95:4 | 95 | fn string_cell_vec(s1: &str, s2: &str, s3: &str, s4: &str) -> Vec<Cell<String>> { | ^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default warning: `solution` (lib) generated 1 warning Finished test [unoptimized + debuginfo] target(s) in 7.68s Running tests/solution_test.rs (target/debug/deps/solution_test-4c880d3f0adaac34) running 15 tests test solution_test::test_adding_int_and_string_negative ... ok test solution_test::test_adding_int_and_string_positive ... ok test solution_test::test_adding_int_and_string_unicode ... ok test solution_test::test_adding_int_and_string_zero ... ok test solution_test::test_adding_matrices_1 ... ok test solution_test::test_adding_matrices_2 ... ok test solution_test::test_blank_strings ... ok test solution_test::test_iterating_i32s ... ok test solution_test::test_iterating_strings ... ok test solution_test::test_multiplying_int_and_string_negative ... ok test solution_test::test_multiplying_int_and_string_positive ... ok test solution_test::test_multiplying_int_and_string_unicode ... ok test solution_test::test_multiplying_int_and_string_zero ... ok test solution_test::test_multiplying_matrices_1 ... ok test solution_test::test_multiplying_matrices_2 ... ok test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
История (2 версии и 2 коментара)
Димитър качи решение на 18.11.2021 16:40 (преди почти 4 години)
// не съм сигурен дали е най-удачното решение заради usize cast-a
Разумно е -- все пак горе му викаш .abs()
. В идеален свят, може би този метод би върнал unsigned варианта на входа си, но не мисля че има как да се изрази с типовата система generically.
Тестовете, в които проверяваш, че нещо ще panic-не са малко странни. Кода panic-ва просто защото assertion-а не е правилен, което не е нещо, което има смисъл да тестваш (допълнително, когато първия ред panic-не, останалите изобщо няма да се извикат). Ако искаш да валидираш, че Cell(3) + Cell(...)
не е равно на нещо, можеш спокойно да напишеш assert_ne!
("not equal"). Но в този случай, защо не напишеш на какво очакваш да е равно? Ако провериш, че събирането на 3
и badger
е 3 badger
, тогава е ясно, че няма да бъде 4 badger
.
Разумно е -- все пак горе му викаш
.abs()
. В идеален свят, може би този метод би върнал unsigned варианта на входа си, но не мисля че има как да се изрази с типовата система generically.Тестовете, в които проверяваш, че нещо ще panic-не са малко странни. Кода panic-ва просто защото assertion-а не е правилен, което не е нещо, което има смисъл да тестваш (допълнително, когато първия ред panic-не, останалите изобщо няма да се извикат). Ако искаш да валидираш, че
Cell(3) + Cell(...)
не е равно на нещо, можеш спокойно да напишешassert_ne!
("not equal"). Но в този случай, защо не напишеш на какво очакваш да е равно? Ако провериш, че събирането на3
иbadger
е3 badger
, тогава е ясно, че няма да бъде4 badger
.