<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mes cours</title><link>https://clownatique.github.io/cours-en-ligne/lifapcd/</link><description>Recent content on Mes cours</description><generator>Hugo</generator><language>fr-fr</language><atom:link href="https://clownatique.github.io/cours-en-ligne/lifapcd/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://clownatique.github.io/cours-en-ligne/lifapcd/annale2024/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifapcd/annale2024/</guid><description>&lt;pre class="mermaid"&gt;class datetime{
 jour
 mois
 annee
 seconde
 miliseconde
 +afficher(format)
 -convertir(format)
}

class endroit{
 float x
 float y
 string adresse
 +adresseFromGps()
}

class releve{
 date date
 signed float mesure
}


class Historique{
 vector&amp;lt;historique&amp;gt; releve
}

class usine{
 endroit coordoneeGPS
 historique debit
 historique analyse
 + donnee_temps_reel
}

class point_distrib{}
 int identifiant
 endroit emplacement
 historique debit
}

class client{
 string nom
 string prenom
 adresse
 point_distribution* point_distribution
}

class Reservoir{
 
}
class jonction{
 emplacement emplacementgps
 jointes vector&amp;lt;jonction*&amp;gt;
 historique debit_entrant
 historique debit_sortant 
}

class arbre{
 racine:usine traitement
 feuilles:point de distribution
 noeuds: chateau d&amp;#39;eau ou pas:est jonction
historique debit entrant/sortant
}

class affichagereseau{
 carte2D
 reservoir_focused
 nanana_focused
}

class historiqueconsommation{
 focused
}&lt;/pre&gt;</description></item><item><title/><link>https://clownatique.github.io/cours-en-ligne/lifapcd/annales/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifapcd/annales/</guid><description>&lt;h3 id="brief"&gt;@brief&lt;a class="anchor" href="#brief"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;sert a documenter des trucs mais psa des typesq
doxygen analyse /// et /**&lt;/p&gt;</description></item><item><title/><link>https://clownatique.github.io/cours-en-ligne/lifapcd/arguments/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifapcd/arguments/</guid><description>&lt;h2 id="arguments"&gt;arguments&lt;a class="anchor" href="#arguments"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;cette partie du cours fait echo a un certain TP en LIFSE&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Un programme peut etre appelle avec des arguments.
Voici plusieurs exemples en bash: (ligne de commande)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ls -a &lt;span style="color:#75715e"&gt;# l&amp;#39;argument ici est -a&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir src &lt;span style="color:#75715e"&gt;# ici c&amp;#39;est src&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pour recuperer les arguments en C++, c la meme chose qu&amp;rsquo;en C:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; main(&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; argc, &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt;argv[], &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt; &lt;span style="color:#f92672"&gt;**&lt;/span&gt;envp)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;/* argc -&amp;gt; nombre d&amp;#39;arguments (ARGuments Count)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * argv -&amp;gt; tableau des agruments (ARGuments Values)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * envp -&amp;gt; variable d&amp;#39;environnement
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title/><link>https://clownatique.github.io/cours-en-ligne/lifapcd/heritage/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifapcd/heritage/</guid><description>&lt;h1 id="pourquoi-lheritage"&gt;Pourquoi l&amp;rsquo;heritage&lt;a class="anchor" href="#pourquoi-lheritage"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;L’&lt;strong&gt;héritage&lt;/strong&gt; permet de créer une classe à partir d’une autre pour &lt;strong&gt;réutiliser son code&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;On part d’une classe générale, puis on crée des versions plus spécialisées.&lt;/p&gt;
&lt;h2 id="exemple--une-personne"&gt;Exemple : une Personne&lt;a class="anchor" href="#exemple--une-personne"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Personne&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;public&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#f92672"&gt;::&lt;/span&gt;string nom;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; age;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;sePresenter&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#f92672"&gt;::&lt;/span&gt;cout &lt;span style="color:#f92672"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;Je m&amp;#39;appelle &amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;&amp;lt;&lt;/span&gt; nom &lt;span style="color:#f92672"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#f92672"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;voici le diagramme&lt;/p&gt;
&lt;pre class="mermaid"&gt;classDiagram
 class Personne{
 +String nom
 +sePresenter()
 }&lt;/pre&gt;&lt;p&gt;Cette classe décrit une personne en général.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="création-dune-classe-qui-hérite"&gt;Création d’une classe qui hérite&lt;a class="anchor" href="#cr%c3%a9ation-dune-classe-qui-h%c3%a9rite"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Imaginons un étudiant.&lt;br&gt;
Un étudiant &lt;strong&gt;est une&lt;/strong&gt; personne, mais avec des infos en plus.&lt;/p&gt;</description></item><item><title/><link>https://clownatique.github.io/cours-en-ligne/lifapcd/stl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifapcd/stl/</guid><description>&lt;h2 id="stl"&gt;stl&lt;a class="anchor" href="#stl"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Dans le dernier CM de LIFAPSD, il est precise que nous allons utiliser des
modules de structures de donnees deja developpes.&lt;/p&gt;
&lt;p&gt;Il s&amp;rsquo;agit la de la bibliotheque standard du C++: &lt;strong&gt;la STL&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="structure-de-donnees"&gt;Structure de donnees&lt;a class="anchor" href="#structure-de-donnees"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;La STL utilise des templates pour creer des classes supportant n&amp;rsquo;importe quelle type.&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;On pourra creer un tableau d&amp;rsquo;entier de la meme maniere qu&amp;rsquo;on pourra creer un tableau de flottant&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Ce mecanisme est detaille &lt;a href="templates.md"&gt;ici&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cm1</title><link>https://clownatique.github.io/cours-en-ligne/lifapcd/cm1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifapcd/cm1/</guid><description>&lt;h2 id="méthodes-de-conception"&gt;Méthodes de conception&lt;a class="anchor" href="#m%c3%a9thodes-de-conception"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Les methodes de conceptions presentees ici sont des moyens d&amp;rsquo;arriver a la conception d&amp;rsquo;un projet&lt;/p&gt;
&lt;h3 id="en-cascade"&gt;en cascade&lt;a class="anchor" href="#en-cascade"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;conception lineaire&lt;/li&gt;
&lt;li&gt;issu du batiment&lt;/li&gt;
&lt;li&gt;lidee de la methode est quon ne peut pas faire une etape sans celle davant&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;(il faut avoir finis les spécifications avant de faire la conception architecture)&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="iteratif"&gt;iteratif&lt;a class="anchor" href="#iteratif"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;1 cycle en cascade = 1 version.&lt;/li&gt;
&lt;li&gt;moins detape qu&amp;rsquo;en cascade&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="en-v"&gt;en V&lt;a class="anchor" href="#en-v"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;chaque branche du V represente la theorie/la pratique&lt;/li&gt;
&lt;li&gt;chaque etape apres avoir code reprends le travail de theorie&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="en-spirale"&gt;en spirale&lt;a class="anchor" href="#en-spirale"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;plein de cycles&lt;/li&gt;
&lt;li&gt;1 cycle = 1 point dans larchitecture detaille au tout debut&lt;/li&gt;
&lt;li&gt;1 cycle = code, test unitaire (est ce que ma fonction marche ?), test dintegration (est ce que ma fonction fait planter le projet ?)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;les problemes de ces methodes c quelle ne fournisse un code fonctionnelle a la fin dun seul cycle.&lt;/p&gt;</description></item><item><title>diagramme UML</title><link>https://clownatique.github.io/cours-en-ligne/lifapcd/cm2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifapcd/cm2/</guid><description>&lt;h2 id="module"&gt;module&lt;a class="anchor" href="#module"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;une codebase (ensemble du code du projet) &lt;strong&gt;doit&lt;/strong&gt; etre scinde en plusieurs modules&lt;/p&gt;
&lt;p&gt;un module doit etre represente par un couple de .h/.cpp
il est necessaire de lister les signatures des fonctions
on change jamais les attributs/donnes de lobjet: on appelle uniquement des fonctions&lt;/p&gt;
&lt;p&gt;ce qui est a faire pour modulariser au maximum son code:
separer son code en fonctionnalites&lt;/p&gt;
&lt;p&gt;regrouper les fonctionnalites qui ont besoin des memes choses (donnes, operations sur les donnes) =&amp;gt; 1 module
1 classe =&amp;gt; 1 module
1 module =&amp;gt; n fonctions&lt;/p&gt;</description></item><item><title>doxygen</title><link>https://clownatique.github.io/cours-en-ligne/lifapcd/cm4-p3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifapcd/cm4-p3/</guid><description>&lt;h2 id="doxygen-pourquoi"&gt;doxygen, pourquoi?&lt;a class="anchor" href="#doxygen-pourquoi"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;simplement pour generer une &lt;em&gt;jolie&lt;/em&gt; documentation a partir de nos commentaires&lt;/p&gt;
&lt;h3 id="doxygen-comment-"&gt;doxygen, comment ?&lt;a class="anchor" href="#doxygen-comment-"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="installation"&gt;installation&lt;a class="anchor" href="#installation"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;div class="book-tabs"&gt;
&lt;input type="radio" class="toggle" name="tabs-0" id="tabs-0-0" checked="checked" /&gt;&lt;label for="tabs-0-0"&gt;Linux&lt;/label&gt;&lt;div class="book-tabs-content markdown-inner"&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;input type="radio" class="toggle" name="tabs-0" id="tabs-0-1" /&gt;&lt;label for="tabs-0-1"&gt;MacOS&lt;/label&gt;&lt;div class="book-tabs-content markdown-inner"&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-zsh" data-lang="zsh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install doxygen&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;input type="radio" class="toggle" name="tabs-0" id="tabs-0-2" /&gt;&lt;label for="tabs-0-2"&gt;Windows&lt;/label&gt;&lt;div class="book-tabs-content markdown-inner"&gt;
&lt;p&gt;Pourquoi avoir Windows en big 2026 la tcheam&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=""&gt;&lt;a class="anchor" href="#"&gt;#&lt;/a&gt;&lt;/h4&gt;</description></item><item><title>ecrire du code</title><link>https://clownatique.github.io/cours-en-ligne/lifapcd/cm4-p2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifapcd/cm4-p2/</guid><description>&lt;h2 id="pourquoi-des-conventions-pour-ecrire-du-code"&gt;pourquoi des conventions pour ecrire du code?&lt;a class="anchor" href="#pourquoi-des-conventions-pour-ecrire-du-code"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Pour favoriser des bonnes pratiques&lt;/li&gt;
&lt;li&gt;Pour normaliser une base de commune&lt;/li&gt;
&lt;li&gt;Pour fluidifer la lecture (car un code est plus souvent lu qu&amp;rsquo;ecrit, cf excoffier)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="quelque-principes-applicables-a-dautres-langages"&gt;quelque principes (applicables a d&amp;rsquo;autres langages)&lt;a class="anchor" href="#quelque-principes-applicables-a-dautres-langages"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;une ligne ne doit pas depasser 80 caracteres&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;ul&gt;
&lt;li&gt;pour pouvoir zoomer&lt;/li&gt;
&lt;li&gt;si c trop long il est preferable de decouper notre propos (exemple condition
booleene)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;choisir une unique langue pour les noms de variables/classes/fonction&lt;/strong&gt;:&lt;/p&gt;</description></item><item><title>git</title><link>https://clownatique.github.io/cours-en-ligne/lifapcd/cm4/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifapcd/cm4/</guid><description>&lt;h2 id="pourquoi-git"&gt;pourquoi git?&lt;a class="anchor" href="#pourquoi-git"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;ecriture de code a plusieurs pose plusieurs problematiques:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;comment faire en sorte que chaque developpeur ait une version du code a jour?&lt;/li&gt;
&lt;li&gt;comment eviter de se partager des fichiers inutiles/sensibles&lt;/li&gt;
&lt;li&gt;comment gerer les conflits lorsque 2 developpeurs ont travaille sur le meme code ?&lt;/li&gt;
&lt;li&gt;comment conserver un historique d&amp;rsquo;edition&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;=&amp;gt; on va utiliser un gestionnaire de version de code&lt;/p&gt;
&lt;p&gt;Et git parce que (c la norme en vrai)&lt;/p&gt;</description></item><item><title>lecture de documentation en amphi</title><link>https://clownatique.github.io/cours-en-ligne/lifapcd/cm3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifapcd/cm3/</guid><description>&lt;p&gt;pour programmer on utilise 3 outils&lt;/p&gt;
&lt;p&gt;le compilateur de fichier
le compilateur de plusieurs fichiers (projets)
un programme de debogage&lt;/p&gt;
&lt;h2 id="gcc"&gt;GCC&lt;a class="anchor" href="#gcc"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;la commande g++ compile un fichier cpp en binaire&lt;/p&gt;
&lt;p&gt;cependant nous ne voulons pas systematiquement un fichier binaire final:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;car nos programmes sont separes en plusieurs fichiers separes&lt;/li&gt;
&lt;li&gt;mais aussi la flemme de recompiler notre projet des quon change quun seul fichier&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;=&amp;gt; on utilise alors plusieurs fichiers objets&lt;/p&gt;</description></item><item><title>test de regression</title><link>https://clownatique.github.io/cours-en-ligne/lifapcd/testregression/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifapcd/testregression/</guid><description>&lt;h2 id="regression-"&gt;regression ?&lt;a class="anchor" href="#regression-"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;regression est a opposer avec progression.
Si lorsquon ajoute des fonctionnalites a notre programme, les fonctions deja developpe ne marche plus c quon regresse.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Il est imperatif de sassurer que ce ne soit pas le cas.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="tests-"&gt;tests ?&lt;a class="anchor" href="#tests-"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;on va donc ecrire des tests pour s&amp;rsquo;assurer qu&amp;rsquo;un module marche.&lt;/p&gt;
&lt;p&gt;ces tests se font avec des &lt;em&gt;assert&lt;/em&gt;: cette fonction s&amp;rsquo;arrete&lt;/p&gt;
&lt;p&gt;Attention aux abus de langage: on va voir si on regresse avec nos tests, pour
s&amp;rsquo;assurer de la non regression (non ce n&amp;rsquo;est pas une &lt;a href="https://fr.wikipedia.org/wiki/Litote"&gt;litote&lt;/a&gt; volontaire)&lt;/p&gt;</description></item></channel></rss>