1#include <gtest/gtest.h>
3#include <userver/protobuf/json/convert.hpp>
4#include <userver/utest/assert_macros.hpp>
10namespace protobuf::json::tests {
13class FloatSpecialFromJsonTest :
public ::testing::Test {
18using FpTypes = ::testing::Types<
21 FloatPositiveInfinity,
22 FloatNegativeInfinity,
25 DoublePositiveInfinity,
26 DoubleNegativeInfinity>;
28TYPED_TEST_SUITE(FloatSpecialFromJsonTest, FpTypes);
30TYPED_TEST(FloatSpecialFromJsonTest, Test) {
31 using Param =
typename TestFixture::Param;
32 using Message =
typename Param::Message;
34 if constexpr (Param::kSkip) {
38 const auto& json = Param::kJson;
39 const auto& expected_data = Param::kValue;
42 Message expected_message;
43 Message sample_message;
44 formats::json::
Value input = PrepareJsonTestData(json);
45 expected_message = PrepareTestData(expected_data);
47 message.set_field1(100.001);
49 UASSERT_NO_THROW((message = JsonToMessage<Message>(input)));
50 UASSERT_NO_THROW(InitSampleMessage(json, sample_message));
52 CheckMessageEqual(message, sample_message);
53 CheckMessageEqual(message, expected_message);