mirror of
https://github.com/romixlab/qmsgpack.git
synced 2025-08-01 11:24:26 +02:00
Some bugs fixed
float support added float, double, QByteArray, QList<T> to MsgPackStream added float, double, QByteArrat tests for MsgPackStream added
This commit is contained in:
@@ -8,11 +8,85 @@ class MixedTest : public QObject
|
||||
Q_OBJECT
|
||||
|
||||
private Q_SLOTS:
|
||||
void test_float();
|
||||
void test_double();
|
||||
void test_map();
|
||||
void test_ext();
|
||||
void test_mixed();
|
||||
};
|
||||
|
||||
void MixedTest::test_float()
|
||||
{
|
||||
float f;
|
||||
QByteArray packed;
|
||||
|
||||
packed = MsgPack::pack(0.0f);
|
||||
f = MsgPack::unpack(packed).toFloat();
|
||||
QVERIFY(f == 0.0f);
|
||||
QVERIFY(packed.size() == 5);
|
||||
|
||||
packed = MsgPack::pack(-0.0f);
|
||||
f = MsgPack::unpack(packed).toFloat();
|
||||
QVERIFY(f == -0.0f);
|
||||
QVERIFY(packed.size() == 5);
|
||||
|
||||
packed = MsgPack::pack(1.0f);
|
||||
f = MsgPack::unpack(packed).toFloat();
|
||||
QVERIFY(f == 1.0f);
|
||||
QVERIFY(packed.size() == 5);
|
||||
|
||||
packed = MsgPack::pack(-1.0f);
|
||||
f = MsgPack::unpack(packed).toFloat();
|
||||
QVERIFY(f == -1.0f);
|
||||
QVERIFY(packed.size() == 5);
|
||||
|
||||
packed = MsgPack::pack(32767.0f);
|
||||
f = MsgPack::unpack(packed).toFloat();
|
||||
QVERIFY(f == 32767.0f);
|
||||
QVERIFY(packed.size() == 5);
|
||||
|
||||
packed = MsgPack::pack(-32767.0f);
|
||||
f = MsgPack::unpack(packed).toFloat();
|
||||
QVERIFY(f == -32767.0f);
|
||||
QVERIFY(packed.size() == 5);
|
||||
}
|
||||
|
||||
void MixedTest::test_double()
|
||||
{
|
||||
double d;
|
||||
QByteArray packed;
|
||||
|
||||
packed = MsgPack::pack(0.0);
|
||||
d = MsgPack::unpack(packed).toDouble();
|
||||
QVERIFY(d == 0.0);
|
||||
QVERIFY(packed.size() == 9);
|
||||
|
||||
packed = MsgPack::pack(-0.0);
|
||||
d = MsgPack::unpack(packed).toDouble();
|
||||
QVERIFY(d == -0.0);
|
||||
QVERIFY(packed.size() == 9);
|
||||
|
||||
packed = MsgPack::pack(1.0);
|
||||
d = MsgPack::unpack(packed).toDouble();
|
||||
QVERIFY(d == 1.0);
|
||||
QVERIFY(packed.size() == 9);
|
||||
|
||||
packed = MsgPack::pack(-1.0);
|
||||
d = MsgPack::unpack(packed).toDouble();
|
||||
QVERIFY(d == -1.0);
|
||||
QVERIFY(packed.size() == 9);
|
||||
|
||||
packed = MsgPack::pack(32767.0);
|
||||
d = MsgPack::unpack(packed).toDouble();
|
||||
QVERIFY(d == 32767.0);
|
||||
QVERIFY(packed.size() == 9);
|
||||
|
||||
packed = MsgPack::pack(-32767.0);
|
||||
d = MsgPack::unpack(packed).toDouble();
|
||||
QVERIFY(d == -32767.0);
|
||||
QVERIFY(packed.size() == 9);
|
||||
}
|
||||
|
||||
void MixedTest::test_map()
|
||||
{
|
||||
QVariantMap map;
|
||||
|
@@ -271,7 +271,7 @@ void PackTest::test_bin()
|
||||
QVERIFY(p[2] == 0x00);
|
||||
QVERIFY(memcmp(p + 3, ba.data(), ba.size()) == 0);
|
||||
|
||||
ba = QByteArray(65536, 'r');
|
||||
ba = QByteArray(65536, 'x');
|
||||
arr = MsgPack::pack(ba);
|
||||
QVERIFY(arr.size() == ba.size() + 5);
|
||||
p = (quint8 *)arr.data();
|
||||
|
@@ -14,7 +14,9 @@ private Q_SLOTS:
|
||||
void test_pack_integers();
|
||||
void test_unpack_string();
|
||||
void test_pack_string();
|
||||
|
||||
void test_float();
|
||||
void test_double();
|
||||
void test_bin();
|
||||
};
|
||||
|
||||
void StreamTest::test_unpack_integers()
|
||||
@@ -203,7 +205,107 @@ void StreamTest::test_pack_string()
|
||||
QVERIFY(l[4].isEmpty());
|
||||
}
|
||||
|
||||
void StreamTest::test_float()
|
||||
{
|
||||
QByteArray packed;
|
||||
{
|
||||
MsgPackStream stream(&packed, QIODevice::WriteOnly);
|
||||
stream << -0.0f << 0.0f << -1.0f << 1.0f << -32767.0f << 32767.0f;
|
||||
QVERIFY(packed.size() == 6 * 5);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
}
|
||||
|
||||
MsgPackStream stream(packed);
|
||||
float f;
|
||||
|
||||
stream >> f;
|
||||
QVERIFY(f == -0.0f);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
|
||||
stream >> f;
|
||||
QVERIFY(f == 0.0f);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
|
||||
stream >> f;
|
||||
QVERIFY(f == -1.0f);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
|
||||
stream >> f;
|
||||
QVERIFY(f == 1.0f);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
|
||||
stream >> f;
|
||||
QVERIFY(f == -32767.0f);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
|
||||
stream >> f;
|
||||
QVERIFY(f == 32767.0f);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
}
|
||||
|
||||
void StreamTest::test_double()
|
||||
{
|
||||
QByteArray packed;
|
||||
{
|
||||
MsgPackStream stream(&packed, QIODevice::WriteOnly);
|
||||
stream << -0.0 << 0.0 << -1.0 << 1.0 << -32767.0 << 32767.0;
|
||||
QVERIFY(packed.size() == 6 * 9);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
}
|
||||
|
||||
MsgPackStream stream(packed);
|
||||
double d;
|
||||
|
||||
stream >> d;
|
||||
QVERIFY(d == -0.0);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
|
||||
stream >> d;
|
||||
QVERIFY(d == 0.0);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
|
||||
stream >> d;
|
||||
QVERIFY(d == -1.0);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
|
||||
stream >> d;
|
||||
QVERIFY(d == 1.0);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
|
||||
stream >> d;
|
||||
QVERIFY(d == -32767.0);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
|
||||
stream >> d;
|
||||
QVERIFY(d == 32767.0);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
}
|
||||
|
||||
void StreamTest::test_bin()
|
||||
{
|
||||
QByteArray ba1("msgpack"), ba2(256, 'r'), ba3(65536, 'x');
|
||||
QByteArray packed;
|
||||
{
|
||||
MsgPackStream stream(&packed, QIODevice::WriteOnly);
|
||||
stream << ba1 << ba2 << ba3;
|
||||
}
|
||||
QVERIFY(packed.size() == 7+2 + 256+3 + 65536+5);
|
||||
|
||||
MsgPackStream stream(packed);
|
||||
QByteArray ba;
|
||||
|
||||
stream >> ba;
|
||||
QVERIFY(ba == ba1);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
|
||||
stream >> ba;
|
||||
QVERIFY(ba == ba2);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
|
||||
stream >> ba;
|
||||
QVERIFY(ba == ba3);
|
||||
QVERIFY(stream.status() == MsgPackStream::Ok);
|
||||
}
|
||||
|
||||
QTEST_APPLESS_MAIN(StreamTest)
|
||||
|
||||
#include "stream_test.moc"
|
||||
|
Reference in New Issue
Block a user