paysages3d/src/tests/PackStream_Test.cpp
2016-07-23 22:58:32 +02:00

92 lines
2.1 KiB
C++

#include "BaseTestCase.h"
#include "PackStream.h"
#include "System.h"
TEST(PackStream, All) {
PackStream *stream;
int i;
int data_i;
double data_d;
const char *data_s;
char buffer[100];
/* Writing to pack */
stream = new PackStream();
stream->bindToFile(TMP_DIRECTORY "test_paysages_pack", true);
for (i = 0; i < 5; i++) {
data_i = i;
stream->write(&data_i);
data_d = to_double(i);
stream->write(&data_d);
data_s = "Testing string 0123 (accentué) !";
stream->write(data_s, 100);
stream->write(data_s, 4);
stream->write(data_s, 5);
}
delete stream;
/* Reading from pack */
stream = new PackStream();
stream->bindToFile(TMP_DIRECTORY "test_paysages_pack");
for (i = 0; i < 5; i++) {
stream->read(&data_i);
ASSERT_EQ(i, data_i);
stream->read(&data_d);
ASSERT_DOUBLE_EQ(to_double(i), data_d);
stream->read(buffer, 100);
ASSERT_STREQ("Testing string 0123 (accentué) !", buffer);
stream->read(buffer, 4);
ASSERT_STREQ("Tes", buffer);
stream->read(buffer, 3);
ASSERT_STREQ("Te", buffer);
}
delete stream;
}
TEST(PackStream, Skip) {
PackStream *stream;
int i1 = 1, i2 = 2, i3 = 3;
double d1 = 1.1, d2 = 2.2;
stream = new PackStream();
stream->bindToFile(TMP_DIRECTORY "test_paysages_pack", true);
stream->write(&i1);
stream->write(&i2);
stream->write(&d1);
stream->write(&d2);
stream->write(&i3);
delete stream;
int resi;
double resd;
stream = new PackStream();
stream->bindToFile(TMP_DIRECTORY "test_paysages_pack");
stream->skip(i1, 1);
stream->read(&resi);
EXPECT_EQ(2, resi);
delete stream;
stream = new PackStream();
stream->bindToFile(TMP_DIRECTORY "test_paysages_pack");
stream->skip(i1, 2);
stream->read(&resd);
EXPECT_DOUBLE_EQ(1.1, resd);
delete stream;
stream = new PackStream();
stream->bindToFile(TMP_DIRECTORY "test_paysages_pack");
stream->skip(i1, 2);
stream->skip(d1, 2);
stream->read(&resi);
EXPECT_EQ(3, resi);
delete stream;
}