#ifdef USE_HOST #include #include #include #include "esphome/components/bytebuffer/bytebuffer.h" namespace esphome::bytebuffer { // Typed values as ByteBuffer::wrap packs them; esp32_ble_server's value_bytes() is tested against the same bytes. TEST(ByteBufferWrapValues, MatchesGeneratedConstants) { EXPECT_EQ(ByteBuffer::wrap(uint8_t(18), LITTLE).get_data(), (std::vector{0x12})); EXPECT_EQ(ByteBuffer::wrap(uint16_t(18), LITTLE).get_data(), (std::vector{0x12, 0x00})); EXPECT_EQ(ByteBuffer::wrap(uint16_t(4660), BIG).get_data(), (std::vector{0x12, 0x34})); EXPECT_EQ(ByteBuffer::wrap(uint32_t(305419896), LITTLE).get_data(), (std::vector{0x78, 0x56, 0x34, 0x12})); EXPECT_EQ(ByteBuffer::wrap(uint64_t(1311768467294899695ULL), BIG).get_data(), (std::vector{0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef})); EXPECT_EQ(ByteBuffer::wrap(int8_t(-5), LITTLE).get_data(), (std::vector{0xfb})); EXPECT_EQ(ByteBuffer::wrap(int16_t(-2), BIG).get_data(), (std::vector{0xff, 0xfe})); EXPECT_EQ(ByteBuffer::wrap(int32_t(-2), LITTLE).get_data(), (std::vector{0xfe, 0xff, 0xff, 0xff})); EXPECT_EQ(ByteBuffer::wrap(int64_t(-2), LITTLE).get_data(), (std::vector{0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff})); EXPECT_EQ(ByteBuffer::wrap(float(123.1f), BIG).get_data(), (std::vector{0x42, 0xf6, 0x33, 0x33})); EXPECT_EQ(ByteBuffer::wrap(float(0.1f), LITTLE).get_data(), (std::vector{0xcd, 0xcc, 0xcc, 0x3d})); EXPECT_EQ(ByteBuffer::wrap(double(0.1), LITTLE).get_data(), (std::vector{0x9a, 0x99, 0x99, 0x99, 0x99, 0x99, 0xb9, 0x3f})); EXPECT_EQ(ByteBuffer::wrap(double(2.5), BIG).get_data(), (std::vector{0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})); } } // namespace esphome::bytebuffer #endif