GCC Code Coverage Report


Directory: ./
File: tmp_project/PhoenixTex2Html/src/PLatexObj/platexobj_updateNumber.cpp
Date: 2025-03-24 18:12:43
Exec Total Coverage
Lines: 29 29 100.0%
Branches: 37 38 97.4%

Line Branch Exec Source
1 /***************************************
2 Auteur : Pierre Aubert
3 Mail : pierre.aubert@lapp.in2p3.fr
4 Licence : CeCILL-C
5 ****************************************/
6
7
8 #include "platexobj_updateNumber.h"
9
10 ///Update the vecNumber and return the proper vector
11 /** @param[out] vecNumber : vector to be updated
12 * @param numberIndex : index of the number to deal with
13 * @return proper vector of number for the current section
14 */
15 462 PVecNumber copyAddVecNumber(PVecNumber & vecNumber, long unsigned int numberIndex){
16 462 long unsigned int nbNumber(vecNumber.size()), nbExpectedNumber(numberIndex + 1lu);
17
2/2
✓ Branch 0 taken 113 times.
✓ Branch 1 taken 349 times.
462 if(nbExpectedNumber > nbNumber){
18
2/2
✓ Branch 0 taken 117 times.
✓ Branch 1 taken 113 times.
230 for(long unsigned int i(nbNumber); i < nbExpectedNumber; ++i){
19
1/1
✓ Branch 1 taken 117 times.
117 vecNumber.push_back(1lu);
20 }
21
2/2
✓ Branch 0 taken 80 times.
✓ Branch 1 taken 269 times.
349 }else if(nbExpectedNumber < nbNumber){
22
2/2
✓ Branch 0 taken 100 times.
✓ Branch 1 taken 80 times.
180 for(long unsigned int i(nbExpectedNumber); i < nbNumber; ++i){
23 100 vecNumber.pop_back();
24 }
25 80 vecNumber[numberIndex] += 1lu;
26 }else{
27 269 vecNumber[numberIndex] += 1lu;
28 }
29 462 PVecNumber copy(vecNumber);
30 462 return copy;
31 }
32
33 ///Update the vector number of the PLatexObj
34 /** @param[out] obj : PLatexObj to be updated
35 * @param[out] vecNumber : vector of the section number
36 */
37 589 void platexobj_updateNumber(PLatexObj & obj, PVecNumber & vecNumber){
38 589 PVecLatexObj & vecContent = obj.getVecContent();
39
2/2
✓ Branch 4 taken 12500 times.
✓ Branch 5 taken 589 times.
13089 for(PVecLatexObj::iterator it(vecContent.begin()); it != vecContent.end(); ++it){
40
3/3
✓ Branch 2 taken 12500 times.
✓ Branch 4 taken 12038 times.
✓ Branch 5 taken 462 times.
12500 if(!isSection(*it)){continue;}
41
1/1
✓ Branch 2 taken 462 times.
462 PLatexType::PLatexType type(it->getType());
42
4/4
✓ Branch 0 taken 80 times.
✓ Branch 1 taken 382 times.
✓ Branch 3 taken 80 times.
✓ Branch 7 taken 80 times.
462 if(type == PLatexType::PART){it->getVecSecNumber() = copyAddVecNumber(vecNumber, 0lu);}
43
4/4
✓ Branch 0 taken 96 times.
✓ Branch 1 taken 286 times.
✓ Branch 3 taken 96 times.
✓ Branch 7 taken 96 times.
382 else if(type == PLatexType::CHAPTER){it->getVecSecNumber() = copyAddVecNumber(vecNumber, 1lu);}
44
4/4
✓ Branch 0 taken 107 times.
✓ Branch 1 taken 179 times.
✓ Branch 3 taken 107 times.
✓ Branch 7 taken 107 times.
286 else if(type == PLatexType::SECTION){it->getVecSecNumber() = copyAddVecNumber(vecNumber, 2lu);}
45
4/4
✓ Branch 0 taken 175 times.
✓ Branch 1 taken 4 times.
✓ Branch 3 taken 175 times.
✓ Branch 7 taken 175 times.
179 else if(type == PLatexType::SUBSECTION){it->getVecSecNumber() = copyAddVecNumber(vecNumber, 3lu);}
46
3/4
✓ Branch 0 taken 4 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 4 times.
✓ Branch 7 taken 4 times.
4 else if(type == PLatexType::SUBSUBSECTION){it->getVecSecNumber() = copyAddVecNumber(vecNumber, 4lu);}
47
1/1
✓ Branch 2 taken 462 times.
462 platexobj_updateNumber(*it, vecNumber);
48 }
49 589 }
50
51 ///Update the vector number of the PLatexObj
52 /** @param[out] obj : PLatexObj to be updated
53 */
54 127 void platexobj_updateNumber(PLatexObj & obj){
55 127 PVecNumber vecNumber;
56
1/1
✓ Branch 1 taken 127 times.
127 vecNumber.push_back(0lu);
57
1/1
✓ Branch 1 taken 127 times.
127 platexobj_updateNumber(obj, vecNumber);
58 127 }
59
60
61