Exo1 puissance.cpp ```cpp #include <stdexcept> #include <iostream> using namespace std; #define DOCTEST_CONFIG_IMPLEMENT #include "doctest.h" /** Calcule la puissance d'un nombre par un exposant * @param[in] nombre : un entier * @param[in] exposant : un entier * @return un entier resultat de la puissance **/ int puissance(int nombre, int exposant) { int res=1; for (int i=1; i<=exposant; i++) { res = res*nombre; } return res; } TEST_CASE("Test de la fonction puissance") { CHECK(puissance(10, 0) == 1); CHECK(puissance(2,2)==4); CHECK(puissance(1, 1) == 5); // exemple volontairement faux CHECK(puissance(2, 1) == 2); CHECK(puissance(3, 2) == 9); CHECK(puissance(10, 5) == 100000); } int main(int argc, const char** argv){ doctest::Context context(argc, argv); int test_result = context.run(); if (context.shouldExit()) return test_result; // Calcule et affiche les puissance de 2 for (int i=0; i<=20; i++) cout << puissance(2, i) << endl; return 0; } ``` Résultat execution [doctest] doctest version is "2.4.0" [doctest] run with "--help" for options =============================================================================== puissance.cpp:25: TEST CASE: Test de la fonction puissance puissance.cpp:28: ERROR: CHECK( puissance(1, 1) == 5 ) is NOT correct! values: CHECK( 1 == 5 ) =============================================================================== [doctest] test cases: 1 | 0 passed | 1 failed | 0 skipped [doctest] assertions: 5 | 4 passed | 1 failed | [doctest] Status: FAILURE! 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576