1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#include <forstio/test/suite.hpp>
#include "../c++/memory.hpp"
namespace {
namespace sch {
using namespace saw::schema;
using TStruct = Struct<
Member<Float32,"a">,
Member<Int8, "b">,
Member<UInt64, "c">
>;
using TChunk = kel::lbm::sch::Chunk<Float32,1u,2u,3u,4u>;
using TBChunk = kel::lbm::sch::Chunk<UInt32,1u,2u,3u,4u>;
using TChunkStruct = Struct<
Member<TChunk, "a">,
Member<TBChunk, "b">
>;
}
SAW_TEST("Memory Estimate"){
using namespace kel::lbm;
SAW_EXPECT((memory_estimate<sch::Float32>().get() == 4u), "Float32 isn't 4 bytes" );
SAW_EXPECT((memory_estimate<sch::FixedArray<sch::Float32,5u,3u>>().get() == 60u), "FixedArray<Float32,5u,3u> isn't 60 bytes");
SAW_EXPECT((memory_estimate<sch::FixedArray<sch::Float32,5u,3u>, sch::UInt8>().get() == 61u), "FixedArray<Float32,5u,3u> + UInt8 isn't 61 bytes");
}
SAW_TEST("Memory Estimate Struct"){
using namespace kel::lbm;
SAW_EXPECT((memory_estimate<sch::TStruct>().get() == 13u), "TStruct isn't 13 bytes" );
// SAW_EXPECT((memory_estimate<sch::TStruct>().get() == 13u), "TStruct isn't 13 bytes" );
}
SAW_TEST("Memory Estimate Scalar"){
using namespace kel::lbm;
SAW_EXPECT((memory_estimate<sch::Scalar<sch::UInt8>>().get() == 1u), "Scalar of UInt8 isn't 1 bytes" );
// SAW_EXPECT((memory_estimate<sch::TStruct>().get() == 13u), "TStruct isn't 13 bytes" );
}
SAW_TEST("Memory Estimate Chunk"){
using namespace kel::lbm;
SAW_EXPECT((memory_estimate<sch::TChunk>().get() == 480u), std::string{"TChunk isn't 480 bytes "} + std::to_string(memory_estimate<sch::TChunk>().get()) );
}
SAW_TEST("Memory Estimate Struct of Chunk"){
using namespace kel::lbm;
SAW_EXPECT((memory_estimate<sch::TChunkStruct>().get() == 960u), std::string{"TChunk isn't 480 bytes "} + std::to_string(memory_estimate<sch::TChunk>().get()) );
}
}
|