---
# System prepended metadata

title: "[doctest] doctest version is \"2.4.0\"\n[doctest] run with \"--help\" for options"

---

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