GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: TESTS/TEST_PSTRIDE/main.cpp Lines: 93 93 100.0 %
Date: 2026-03-27 22:08:32 Branches: 96 96 100.0 %

Line Branch Exec Source
1
/***************************************
2
	Auteur : Pierre Aubert
3
	Mail : pierre.aubert@lapp.in2p3.fr
4
	Licence : CeCILL-C
5
****************************************/
6
7
#include "PStride.h"
8
9
///Check and print the given PStride
10
/**	@param varName : string to print
11
 * 	@param other : PStride to check and print
12
 * 	@param expectedFullSize : expected full size
13
 * 	@param expectedFullNbElement : expected full number of elements
14
*/
15
20
bool checkAndPrintPStride(const std::string & varName, const PStride & other, size_t expectedFullSize, size_t expectedFullNbElement){
16
20
	bool b(true);
17
20
	std::cout << varName << other << std::endl;
18
20
	b &= other.getFullSize() == expectedFullSize;
19
20
	b &= other.getFullNbElement() == expectedFullNbElement;
20
20
	return b;
21
}
22
23
///Test the PStride
24
/**	@return true on success, false otherwise
25
*/
26
1
bool testPStride(){
27
1
	std::cout << "============== testPStride ===============" << std::endl;
28
1
	bool b(true);
29
30
2
	PStride strideA;
31
1
	b &= checkAndPrintPStride("strideA  = ", strideA, 0lu, 0lu);
32
33
2
	PStride strideACopy(strideA);
34
1
	b &= checkAndPrintPStride("strideACopy  = ", strideACopy, 0lu, 0lu);
35
36
2
	PStride strideACopyEq;
37
1
	strideACopyEq = strideA;
38
1
	b &= checkAndPrintPStride("strideACopyEq  = ", strideACopyEq, 0lu, 0lu);
39
40
2
	PVecSize dimB;
41
1
	dimB.push_back(3lu);
42
2
	PStride strideB1(dimB);
43
1
	b &= checkAndPrintPStride("strideB1 = ", strideB1, 3lu, 3lu);
44
45
2
	PStride strideB1Copy(strideB1);
46
1
	b &= checkAndPrintPStride("strideB1Copy = ", strideB1Copy, 3lu, 3lu);
47
48
2
	PStride strideB1CopyEq;
49
1
	strideB1CopyEq = strideB1;
50
1
	b &= checkAndPrintPStride("strideB1CopyEq = ", strideB1CopyEq, 3lu, 3lu);
51
52
1
	dimB.push_back(4lu);
53
2
	PStride strideB2(dimB);
54
1
	b &= checkAndPrintPStride("strideB2 = ", strideB2, 12lu, 12lu);
55
56
2
	PStride strideB2Copy(strideB2);
57
1
	b &= checkAndPrintPStride("strideB2Copy = ", strideB2Copy, 12lu, 12lu);
58
59
2
	PStride strideB2CopyEq;
60
1
	strideB2CopyEq = strideB2;
61
1
	b &= checkAndPrintPStride("strideB2CopyEq = ", strideB2CopyEq, 12lu, 12lu);
62
63
2
	PVecSize paddingC;
64
1
	paddingC.push_back(2lu);
65
1
	paddingC.push_back(1lu);
66
2
	PStride strideC(dimB, paddingC);
67
1
	b &= checkAndPrintPStride("strideC  = ", strideC, 25lu, 12lu);
68
69
2
	PStride strideCCopy(strideC);
70
1
	b &= checkAndPrintPStride("strideCCopy  = ", strideCCopy, 25lu, 12lu);
71
72
2
	PStride strideCCopyEq;
73
1
	strideCCopyEq = strideC;
74
1
	b &= checkAndPrintPStride("strideCCopyEq  = ", strideCCopyEq, 25lu, 12lu);
75
76
2
	PVecSize dimD;
77
1
	dimD.push_back(5lu);
78
2
	PVecSize paddingD;
79
1
	paddingD.push_back(3lu);
80
2
	PStride strideD(dimD, paddingD);
81
1
	b &= checkAndPrintPStride("strideD  = ", strideD, 8lu, 5lu);
82
83
2
	PStride strideDCopy(strideD);
84
1
	b &= checkAndPrintPStride("strideDCopy  = ", strideDCopy, 8lu, 5lu);
85
86
2
	PStride strideDCopyEq;
87
1
	strideDCopyEq = strideD;
88
1
	b &= checkAndPrintPStride("strideDCopyEq  = ", strideDCopyEq, 8lu, 5lu);
89
90
2
	PVecSize positionE;
91
1
	positionE.push_back(2lu);
92
93
2
	PStride strideE(dimD, paddingD, positionE);
94
1
	b &= checkAndPrintPStride("strideE  = ", strideE, 8lu, 5lu);
95
96
2
	PStride strideECopy(strideE);
97
1
	b &= checkAndPrintPStride("strideECopy  = ", strideECopy, 8lu, 5lu);
98
99
1
	PStride strideECopyEq;
100
1
	strideECopyEq = strideE;
101
1
	b &= checkAndPrintPStride("strideECopyEq  = ", strideECopyEq, 8lu, 5lu);
102
103
1
	std::cout << "testPStride : b = " << b << std::endl;
104
2
	return b;
105
}
106
107
///Test the PStride
108
/**	@return true on success, false otherwise
109
*/
110
1
bool testPStridePadding(){
111
1
	std::cout << "============== testPStridePadding ===============" << std::endl;
112
1
	bool b(true);
113
2
	PVecSize paddingA;
114
1
	paddingA.push_back(3lu);
115
2
	PStride strideA;
116
1
	strideA.setVecPadding(paddingA);
117
1
	b &= checkAndPrintPStride("strideA  = ", strideA, 3lu, 0lu);
118
1
	b &= strideA.getVecPadding().size() == 1lu;
119
1
	b &= strideA.getVecPosition().size() == 0lu;
120
1
	b &= strideA.getVecDimension().size() == 0lu;
121
1
	b &= strideA.getVecFullSize().size() == 0lu;
122
1
	b &= strideA.getNbDimension() == 0lu;	//Vector of dimension is not set
123
124
2
	PVecSize dimB;
125
1
	dimB.push_back(3lu);
126
1
	PStride strideB;
127
1
	strideB.setVecDimension(dimB);
128
1
	strideB.setVecPosition(dimB);
129
1
	strideB.setNbVecNeighbour(1lu);
130
1
	b &= strideB.getNbVecNeighbour() == 1lu;
131
1
	b &= strideB.getVecDimension().size() == 1lu;
132
133
1
	b &= checkAndPrintPStride("strideB  = ", strideB, 3lu, 3lu);
134
135
1
	std::cout << "testPStridePadding : b = " << b << std::endl;
136
2
	return b;
137
}
138
139
1
int main(int argc, char** argv){
140
1
	bool b(testPStride());
141
1
	b &= testPStridePadding();
142
1
	return b - 1;
143
}
144
145