Решение на Сметки с ДНК от Диана Маркова
Резултати
- 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-- сега трябва да минем през тия константи и също да ги променим.