00001 #include <boost/test/unit_test.hpp>
00002 #include "ByteBuffer.hpp"
00003 #include <stdint.h>
00004 #include <cstring>
00005
00006 using namespace aitools::invertedindex;
00007
00008 BOOST_AUTO_TEST_SUITE(byte_buffer);
00009
00010 BOOST_AUTO_TEST_CASE(explicit_ctor)
00011 {
00012 ByteBuffer buffer_a;
00013 BOOST_CHECK(buffer_a.data() != NULL);
00014 ByteBuffer buffer_b(0);
00015 BOOST_CHECK(buffer_b.data() != NULL);
00016 ByteBuffer buffer_c(1);
00017 BOOST_CHECK(buffer_c.data() != NULL);
00018 BOOST_CHECK_THROW(ByteBuffer(UINT64_MAX), std::bad_alloc);
00019 }
00020
00021 BOOST_AUTO_TEST_CASE(copy_ctor)
00022 {
00023 ByteBuffer buffer(10);
00024 ByteBuffer copy(buffer);
00025 BOOST_CHECK(buffer.data() != copy.data());
00026 BOOST_CHECK_EQUAL(buffer.size(), copy.size());
00027 }
00028
00029 BOOST_AUTO_TEST_CASE(clear)
00030 {
00031 ByteBuffer buffer(10);
00032 buffer.clear();
00033 BOOST_CHECK_EQUAL(buffer.empty(), true);
00034 BOOST_CHECK_EQUAL(buffer.capacity(), 10);
00035 BOOST_CHECK_EQUAL(buffer.size(), 0);
00036 }
00037
00038 BOOST_AUTO_TEST_CASE(free)
00039 {
00040 ByteBuffer buffer(10);
00041 BOOST_CHECK_EQUAL(buffer.capacity(), 10);
00042 BOOST_CHECK_EQUAL(buffer.size(), 10);
00043 buffer.free();
00044 BOOST_CHECK_EQUAL(buffer.capacity(), 0);
00045 BOOST_CHECK_EQUAL(buffer.size(), 0);
00046 BOOST_CHECK(buffer.data() == NULL);
00047 }
00048
00049 BOOST_AUTO_TEST_CASE(empty)
00050 {
00051 ByteBuffer buffer_a;
00052 BOOST_CHECK_EQUAL(buffer_a.empty(), true);
00053 ByteBuffer buffer_b(0);
00054 BOOST_CHECK_EQUAL(buffer_b.empty(), true);
00055 ByteBuffer buffer_c(1);
00056 BOOST_CHECK_EQUAL(buffer_c.empty(), false);
00057 }
00058
00059 BOOST_AUTO_TEST_CASE(assignment_operator)
00060 {
00061 ByteBuffer buffer;
00062 ByteBuffer copy = buffer;
00063 BOOST_CHECK(std::memcmp(buffer.data(), copy.data(), buffer.size()) == 0);
00064
00065 buffer.resize(10);
00066 copy = buffer;
00067 BOOST_CHECK(std::memcmp(buffer.data(), copy.data(), buffer.size()) == 0);
00068 }
00069
00070 BOOST_AUTO_TEST_CASE(resize)
00071 {
00072 ByteBuffer buffer;
00073 buffer.resize(10);
00074 BOOST_CHECK_EQUAL(buffer.size(), 10);
00075 buffer.resize(20);
00076 BOOST_CHECK_EQUAL(buffer.size(), 20);
00077 BOOST_CHECK_THROW(buffer.resize(UINT64_MAX), std::bad_alloc);
00078 }
00079
00080 BOOST_AUTO_TEST_CASE(size)
00081 {
00082 ByteBuffer buffer_a;
00083 BOOST_CHECK_EQUAL(buffer_a.size(), 0);
00084 ByteBuffer buffer_b(1);
00085 BOOST_CHECK_EQUAL(buffer_b.size(), 1);
00086 }
00087
00088 BOOST_AUTO_TEST_CASE(capacity)
00089 {
00090 ByteBuffer buffer_a;
00091 BOOST_CHECK_EQUAL(buffer_a.capacity(), 0);
00092 ByteBuffer buffer_b(1);
00093 BOOST_CHECK_EQUAL(buffer_b.capacity(), 1);
00094 buffer_a.resize(10);
00095 BOOST_CHECK_EQUAL(buffer_a.capacity(), 10);
00096 buffer_a.resize(5);
00097 BOOST_CHECK_EQUAL(buffer_a.capacity(), 10);
00098 BOOST_CHECK_EQUAL(buffer_a.size(), 5);
00099 }
00100
00101 BOOST_AUTO_TEST_SUITE_END();