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 test affiche 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 clippy ne remonte plus d'avertissement sur cet extrait.