Line data Source code
1 : ///////////////////////////////////////////////////////////////////////////
2 : // Inastemp - Berenger Bramas MPCDF - 2016
3 : // Under MIT Licence, please you must read the LICENCE file.
4 : ///////////////////////////////////////////////////////////////////////////
5 :
6 : #include "InastempGlobal.h"
7 :
8 : #include "Common/InaMemory.hpp"
9 :
10 : #include "UTester.hpp"
11 :
12 : #include <cmath>
13 : #include <cstring>
14 : #include <vector>
15 :
16 4 : class TestMemo : public UTester< TestMemo > {
17 : using Parent = UTester< TestMemo >;
18 :
19 : template <long int alignement>
20 6 : void TestBasic() {
21 : {
22 :
23 : }
24 60 : for(size_t size = 1 ; size < 10 ; ++size){
25 : {
26 54 : char* vecChar = InaMemory::_new<alignement, char>(size);
27 324 : UASSERTETRUE(vecChar != nullptr);
28 378 : UASSERTETRUE((reinterpret_cast<unsigned long>(vecChar) & (alignement-1)) == 0);
29 54 : InaMemory::_delete(vecChar);
30 : }
31 : {
32 54 : double* vecDouble = InaMemory::_new<alignement, double>(size);
33 324 : UASSERTETRUE(vecDouble != nullptr);
34 378 : UASSERTETRUE((reinterpret_cast<unsigned long>(vecDouble) & (alignement-1)) == 0);
35 54 : InaMemory::_delete(vecDouble);
36 : }
37 : {
38 54 : std::vector<double>* vecDouble = InaMemory::_new<alignement, std::vector<double> >(size);
39 324 : UASSERTETRUE(vecDouble != nullptr);
40 324 : UASSERTETRUE((reinterpret_cast<unsigned long>(vecDouble) & (alignement-1)) == 0);
41 54 : InaMemory::_delete(vecDouble);
42 : }
43 : }
44 6 : }
45 :
46 1 : void SetTests() {
47 3 : Parent::AddTest(&TestMemo::TestBasic<1>, "Basic memo test 1");
48 3 : Parent::AddTest(&TestMemo::TestBasic<2>, "Basic memo test 2");
49 3 : Parent::AddTest(&TestMemo::TestBasic<4>, "Basic memo test 4");
50 3 : Parent::AddTest(&TestMemo::TestBasic<8>, "Basic memo test 8");
51 3 : Parent::AddTest(&TestMemo::TestBasic<16>, "Basic memo test 16");
52 3 : Parent::AddTest(&TestMemo::TestBasic<32>, "Basic memo test 32");
53 1 : }
54 : };
55 :
56 :
57 1 : int main() {
58 3 : return TestMemo().Run();
59 2 : }
|