Решение на Сметки с ДНК от Диана Маркова
Резултати
- 20 точки от тестове
- 1 бонус точка
- 21 точки общо
- 12 успешни тест(а)
- 0 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20220112-2706256-tynnsm/solution) Finished test [unoptimized + debuginfo] target(s) in 5.68s Running tests/solution_test.rs (target/debug/deps/solution_test-4c880d3f0adaac34) running 12 tests test solution_test::test_counts_basic ... ok test solution_test::test_counts_big ... ok test solution_test::test_counts_panic1 - should panic ... ok test solution_test::test_counts_panic2 - should panic ... ok test solution_test::test_counts_zero ... ok test solution_test::test_dna_complement_big ... ok test solution_test::test_dna_complement_empty ... ok test solution_test::test_dna_complement_panic - should panic ... ok test solution_test::test_reverse_rna_complement_big ... ok test solution_test::test_reverse_rna_complement_empty ... ok test solution_test::test_reverse_rna_complement_panic1 - should panic ... ok test solution_test::test_reverse_rna_complement_panic2 - should panic ... ok test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
История (2 версии и 2 коментара)
Диана качи решение на 21.10.2021 18:39 (преди почти 4 години)
Можеш да съкратиш a = a + 1
до a += 1
. Бих казал и че не си заслужава експлицитно да указваш 0_usize
-- просто 0
щеше да сработи, защото компилатора ще се усети. Понякога е добре да сме експлицитни с цел четимост, но представи си, че сменим дефиницията от usize
до u32
-- сега трябва да минем през тия константи и също да ги променим.
Съобщението при паника е малко misleading, понеже казва must contain ONLY 'a', 't', 'g', 'c' characters
, но всъщност малките букви са забранени 😅. Иначе, тестовете не са лоши и ще ти дам бонус точка за тях, макар че имай предвид че при вход gCT5aAAcGT
може програмата да panic-не защото е видяла g
, но може и да panic-не защото е видяла 5
. Ти вече имаш 1 тест за първото, така че се дублира проверката. Ако видиш пълния тест, нарочно съм направил тестове, които проверяват само по 1 потенциално невалидно нещо. За reverse
случая, даже повтаряш само втория тест, така че ако кода ти не panic-ваше при 5 или при малка буква, тестовете ти не биха го хванали.
Не е голяма работа, просто нещо, за което да помислиш -- в идеалния случай един тест ще тества точно едно нещо. Не си заслужава човек да е твърде стриктен за такова правило, просто е добър rule of thumb. Иначе подхода ти "какво се случва в добрия случай, какво може да се случи при лош вход", е добро начало.
Можеш да съкратиш
a = a + 1
доa += 1
. Бих казал и че не си заслужава експлицитно да указваш0_usize
-- просто0
щеше да сработи, защото компилатора ще се усети. Понякога е добре да сме експлицитни с цел четимост, но представи си, че сменим дефиницията отusize
доu32
-- сега трябва да минем през тия константи и също да ги променим.