diff --git a/include/etl/bit_stream.h b/include/etl/bit_stream.h index c560f694..dce34b32 100644 --- a/include/etl/bit_stream.h +++ b/include/etl/bit_stream.h @@ -314,8 +314,6 @@ namespace etl from_bytes(data, value); - bits_remaining -= width; - success = true; } } diff --git a/test/test_bit_stream.cpp b/test/test_bit_stream.cpp index cdf4672b..77cc4753 100644 --- a/test/test_bit_stream.cpp +++ b/test/test_bit_stream.cpp @@ -1041,5 +1041,31 @@ namespace CHECK_EQUAL(object1, object1a); CHECK_EQUAL(object2, object2a); } + + //************************************************************************* + TEST(put_get_multiple_float) + { + + float f = 3.1415927f; + double d = 3.1415927; + + std::array storage; + + etl::bit_stream bit_stream(storage.data(), storage.size()); + + bit_stream.put(f); + bit_stream.put(d); + + bit_stream.restart(); + + float rf; + double rd; + + CHECK(bit_stream.get(rf)); + CHECK_CLOSE(f, rf, 0.1f); + + CHECK(bit_stream.get(rd)); + CHECK_CLOSE(f, rd, 0.1f); + } }; }