add PagedBuffer; use own main() for tests

This commit is contained in:
josh committed 2016-07-17 20:43:18 -04:00
1 parent 3be19dbf81
commit cab874305f
4 files changed
+134 -2

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
#include "gtest/gtest.h"
#include "System.h"
int main(int argc, char * argv[])
{
::testing::InitGoogleTest(&argc, argv);
System::init();
return RUN_ALL_TESTS();
}
+45
View File
@@ -0,0 +1,45 @@
#include "gtest/gtest.h"
#include "PagedBuffer.h"
struct X
{
uint64_t a;
uint32_t b;
uint32_t c;
};
struct Y
{
uint32_t a;
uint32_t b;
};
TEST(PagedBufferTest, empty_paged_buffer_has_size_0)
{
PagedBuffer<X> pbx;
ASSERT_EQ(0u, pbx.size());
PagedBuffer<Y> pby;
ASSERT_EQ(0u, pby.size());
}
TEST(PagedBufferTest, allows_adding_elements)
{
PagedBuffer<X> pbx;
for (uint32_t i = 0u; i < 1000u; i++)
{
X x = {i, 2u * i, 4u * i};
pbx[i] = x;
}
ASSERT_GE(pbx.size(), 1000u);
for (uint32_t i = 0u; i < 1000u; i++)
{
const X & x = pbx[i];
ASSERT_EQ(i, x.a);
ASSERT_EQ(2u * i, x.b);
ASSERT_EQ(4u * i, x.c);
}
}