Les petits trucs sympas qui aident au développement
Ces exercices portent sur les commentaires de documentation, les tests unitaires,
assert_eq!, les tests de documentation, rustfmt et clippy. Faites-les dans
l'ordre.
Écrire des tests
Reprends factorielle et pgcd des exercices précédents. Écris un module
#[cfg(test)] mod tests avec, pour chaque fonction, au moins trois assert_eq!
dont un cas limite (0, entrée valant 1, ...).
- Objectif :
#[cfg(test)],#[test],use super::*;,assert_eq!. - Signature suggérée : -
- Cas de test :
cargo testaffiche tous les tests au vert.
Test de documentation
Documente fn celsius_en_fahrenheit(c: f64) -> f64 avec un commentaire ///
contenant un bloc de code exemple, qui sera exécuté comme test par cargo test.
- Objectif : doc-test (
``` ... ```dans un///). - Signature suggérée :
fn celsius_en_fahrenheit(c: f64) -> f64. - Cas de test : l'exemple
assert_eq!(celsius_en_fahrenheit(100.0), 212.0);passe ;celsius_en_fahrenheit(0.0)->32.0.
#[should_panic]
Écris fn racine_entiere(n: i64) -> i64 qui panique si n < 0, et un test
annoté #[should_panic] qui le vérifie.
- Objectif :
panic!,#[should_panic],#[should_panic(expected = "...")]. - Signature suggérée :
fn racine_entiere(n: i64) -> i64. - Cas de test :
racine_entiere(9)->3,racine_entiere(-1)panique.
Nettoyer avec clippy
On te donne un extrait volontairement non idiomatique : if x == true,
if cond { true } else { false }, for i in 0..v.len() { /* ... v[i] ... */ }.
Lance cargo clippy et applique ses suggestions.
- Objectif : lire les lints de clippy et écrire du code idiomatique.
- Signature suggérée : -
- Cas de test :
cargo clippyne remonte plus d'avertissement sur cet extrait.