]> git.llucax.com Git - software/mutest.git/blob - sample/factorial_test.c
Factor out most C code from mkmutest to mutest.c
[software/mutest.git] / sample / factorial_test.c
1
2 #include "factorial.h"
3
4 #ifdef MUTEST_PY
5 #include "../py/mutest.h"
6 #else
7 #include "../mutest.h"
8 #endif
9
10 void mu_test_factorial_zero() {
11         unsigned x = factorial(0);
12         mu_check(x == 1);
13 }
14
15 void mu_test_factorial_one() {
16         unsigned x = factorial(1);
17         /* this test is wrong on purpose, to see how it fails */
18         mu_check(x == 2);
19 }
20
21 void mu_test_factorial_positive() {
22         unsigned x = factorial(2);
23         /* this test is wrong on purpose, to see how it fails */
24         mu_check(x == 3);
25
26         x = factorial(3);
27         /* we don't want to continue if this fails, because the next result
28          * depends on this one. This one will succeed. */
29         mu_ensure(x == 6);
30
31         x = factorial(x);
32         mu_check(x == 720);
33
34         x = factorial(4);
35         mu_ensure(x == 6); /* same as before, but this one will fail. */
36
37         x = factorial(x-15); /* and this will never be executed */
38         mu_check(x == 362881); /* but if excecuted, will fail */
39 }
40