]> git.llucax.com Git - software/mutest.git/blob - sample/factorial_test.c
Render PDF documentation with rst2pdf
[software/mutest.git] / sample / factorial_test.c
1 /*
2  * This file is part of mutest, a simple micro unit testing framework for C.
3  *
4  * mutest was written by Leandro Lucarella <llucax@gmail.com> and is released
5  * under the BOLA license, please see the LICENSE file or visit:
6  * http://blitiri.com.ar/p/bola/
7  *
8  * This is the factorial module test suite. Each (public) function starting
9  * with mu_test will be picked up by mkmutest as a test case.
10  *
11  * Please, read the README file for more details.
12  */
13
14 #include "factorial.h"
15
16 #include "../mutest.h"
17
18 void mu_test_factorial_zero() {
19         unsigned x = factorial(0);
20         mu_check(x == 1);
21 }
22
23 void mu_test_factorial_one() {
24         unsigned x = factorial(1);
25         /* this test is wrong on purpose, to see how it fails */
26         mu_check(x == 2);
27 }
28
29 void mu_test_factorial_positive() {
30         unsigned x = factorial(2);
31         /* this test is wrong on purpose, to see how it fails */
32         mu_check(x == 3);
33
34         x = factorial(3);
35         /* we don't want to continue if this fails, because the next result
36          * depends on this one. This one will succeed. */
37         mu_ensure(x == 6);
38
39         x = factorial(x);
40         mu_check(x == 720);
41
42         x = factorial(4);
43         mu_ensure(x == 6); /* same as before, but this one will fail. */
44
45         x = factorial(x-15); /* and this will never be executed */
46         mu_check(x == 362881); /* but if excecuted, will fail */
47 }
48