encoding: support floating point numbers in TLV-VALUE
refs #4612
Change-Id: I3ca5970b1559c6690826045a0955a26b93663f50
diff --git a/tests/unit-tests/encoding/block-helpers.t.cpp b/tests/unit-tests/encoding/block-helpers.t.cpp
index 9247e0a..5b9711d 100644
--- a/tests/unit-tests/encoding/block-helpers.t.cpp
+++ b/tests/unit-tests/encoding/block-helpers.t.cpp
@@ -84,6 +84,23 @@
BOOST_CHECK_EQUAL(readString(b), "Hello, world!");
}
+BOOST_AUTO_TEST_CASE(Double)
+{
+ const double f = 0.25;
+ Block b = makeDoubleBlock(100, f);
+ BOOST_CHECK_EQUAL(b, "64083FD0000000000000"_block);
+
+ EncodingEstimator estimator;
+ size_t totalLength = prependDoubleBlock(estimator, 100, f);
+ EncodingBuffer encoder(totalLength, 0);
+ prependDoubleBlock(encoder, 100, f);
+ BOOST_CHECK_EQUAL(encoder.block(), b);
+
+ BOOST_CHECK_EQUAL(readDouble(b), f);
+ BOOST_CHECK_THROW(readDouble("4200"_block), tlv::Error);
+ BOOST_CHECK_THROW(readDouble("64043E800000"_block), tlv::Error);
+}
+
BOOST_AUTO_TEST_CASE(Data)
{
std::string buf1{1, 1, 1, 1};
@@ -99,8 +116,7 @@
BOOST_CHECK_EQUAL(b1, b3);
BOOST_CHECK_EQUAL(b1.type(), 100);
BOOST_CHECK_EQUAL(b1.value_size(), buf1.size());
- BOOST_CHECK_EQUAL_COLLECTIONS(b1.value_begin(), b1.value_end(),
- buf2, buf2 + sizeof(buf2));
+ BOOST_CHECK_EQUAL_COLLECTIONS(b1.value_begin(), b1.value_end(), buf2, buf2 + sizeof(buf2));
}
BOOST_AUTO_TEST_CASE(Nested)