Решение на Сметки с ДНК от Александър Бакалов
Към профила на Александър Бакалов
Резултати
- 20 точки от тестове
- 0 бонус точки
- 20 точки общо
- 12 успешни тест(а)
- 0 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20220112-2706256-1ypspup/solution) Finished test [unoptimized + debuginfo] target(s) in 5.58s 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.01s
История (2 версии и 3 коментара)
Александър качи решение на 23.10.2021 22:01 (преди почти 4 години)
Вместо да използваш отделна функция за сравнението, #[derive(PartialEq)]
отгоре на структурата щеше да ти помогне да направиш сравнението директно със assert_eq!(expected_result, actual_result)
(и щеше да ти покаже по-ясно какви са разликите).
Иначе, ако имаш някаква булева стойност, вместо assert_eq!(thing, true)
, можеш да ползваш assert!(thing)
.
Проблема на този тест е, че първата паника ще го накара да мине, защото спира изпълнението на функцията -- кода след counts(&['A', 'C', 'T', 'H']);
просто няма да се изпълни. Вариантите са да се разделят на отделни тестове, или да се ползва catch_unwind
директно, което ще ви покажем в някоя бъдеща лекция.
Добро решение, и добър опит за тестове 👍. Оставил съм ти и коментари за конкретни неща в кода.
Вместо да използваш отделна функция за сравнението,
#[derive(PartialEq)]
отгоре на структурата щеше да ти помогне да направиш сравнението директно съсassert_eq!(expected_result, actual_result)
(и щеше да ти покаже по-ясно какви са разликите).Иначе, ако имаш някаква булева стойност, вместо
assert_eq!(thing, true)
, можеш да ползвашassert!(thing)
.Проблема на този тест е, че първата паника ще го накара да мине, защото спира изпълнението на функцията -- кода след
counts(&['A', 'C', 'T', 'H']);
просто няма да се изпълни. Вариантите са да се разделят на отделни тестове, или да се ползваcatch_unwind
директно, което ще ви покажем в някоя бъдеща лекция.