-
-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathtest_constant.cpp
More file actions
128 lines (114 loc) · 7.34 KB
/
test_constant.cpp
File metadata and controls
128 lines (114 loc) · 7.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*
* Copyright (c) 2024 OpenCyphal Development Team.
* Authors: Sergei Shirokov <sergei.shirokov@zubax.com>
* This software is distributed under the terms of the MIT License.
*
* Tests of constant
*/
#include "gmock/gmock.h"
#include "regulated/basics/Struct__0_1.hpp"
#include "regulated/basics/Union_0_1.hpp"
#include "regulated/basics/Service_0_1.hpp"
#if __cplusplus == 201402L
const std::uint16_t regulated::basics::Struct__0_1::_traits_::FixedPortId;
const bool regulated::basics::Struct__0_1::_traits_::HasFixedPortID;
const std::size_t regulated::basics::Union_0_1::_traits_::ExtentBytes;
const std::size_t regulated::basics::Union_0_1::VariantType::MAX_INDEX;
const double regulated::basics::Struct__0_1::CONSTANT_MINUS_THREE;
const std::int64_t regulated::basics::Struct__0_1::CONSTANT_MINUS_MAX_OFFSET;
const std::uint8_t regulated::basics::Struct__0_1::CONSTANT_ZEE;
const bool regulated::basics::Struct__0_1::CONSTANT_TRUTH;
const float regulated::basics::Service::Response_0_1::ONE_TENTH;
const double regulated::basics::Service::Request_0_1::HALF;
const bool regulated::basics::Service::Request_0_1::_traits_::IsRequest;
const bool regulated::basics::Service::Request_0_1::_traits_::IsResponse;
const bool regulated::basics::Service::Request_0_1::_traits_::IsService;
const bool regulated::basics::Service::Request_0_1::_traits_::IsServiceType;
const bool regulated::basics::Service::Response_0_1::_traits_::IsResponse;
const bool regulated::basics::Service::Response_0_1::_traits_::IsServiceType;
const bool regulated::basics::Service_0_1::_traits_::IsService;
const bool regulated::basics::Service_0_1::_traits_::IsServiceType;
const bool regulated::basics::Service_0_1::_traits_::HasFixedPortID;
const std::uint16_t regulated::basics::Service_0_1::_traits_::FixedPortId;
const std::size_t regulated::basics::Struct__0_1::_traits_::ArrayCapacity::i10_4;
const std::size_t regulated::basics::Struct__0_1::_traits_::ArrayCapacity::f16_le2;
const std::size_t regulated::basics::Struct__0_1::_traits_::ArrayCapacity::unaligned_bitpacked_3;
const std::size_t regulated::basics::Struct__0_1::_traits_::ArrayCapacity::bytes_lt3;
const std::size_t regulated::basics::Struct__0_1::_traits_::ArrayCapacity::bytes_3;
const std::size_t regulated::basics::Struct__0_1::_traits_::ArrayCapacity::u2_le4;
const std::size_t regulated::basics::Struct__0_1::_traits_::ArrayCapacity::delimited_fix_le2;
const std::size_t regulated::basics::Struct__0_1::_traits_::ArrayCapacity::u16_2;
const std::size_t regulated::basics::Struct__0_1::_traits_::ArrayCapacity::aligned_bitpacked_3;
const std::size_t regulated::basics::Struct__0_1::_traits_::ArrayCapacity::unaligned_bitpacked_lt3;
const std::size_t regulated::basics::Struct__0_1::_traits_::ArrayCapacity::delimited_var_2;
const std::size_t regulated::basics::Struct__0_1::_traits_::ArrayCapacity::aligned_bitpacked_le3;
const std::size_t regulated::basics::Union_0_1::_traits_::ArrayCapacity::delimited_fix_le2;
const std::size_t regulated::basics::Union_0_1::_traits_::ArrayCapacity::delimited_var_le2;
#endif
using testing::Le;
using testing::StrEq;
using testing::FloatNear;
using testing::DoubleNear;
TEST(ConstantTests, Struct)
{
// Type parameters.
EXPECT_TRUE(regulated::basics::Struct__0_1::_traits_::HasFixedPortID);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::FixedPortId, 7000);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::FullNameAndVersion(), StrEq("regulated.basics.Struct_.0.1"));
// Application constants.
EXPECT_THAT(regulated::basics::Struct__0_1::CONSTANT_MINUS_THREE, DoubleNear(-3.0, 1e-9));
EXPECT_THAT(regulated::basics::Struct__0_1::CONSTANT_ZEE, 'Z');
EXPECT_THAT(-regulated::basics::Struct__0_1::CONSTANT_MINUS_MAX_OFFSET,
Le(regulated::basics::Struct__0_1::_traits_::SerializationBufferSizeBytes * 8U));
EXPECT_TRUE(regulated::basics::Struct__0_1::CONSTANT_TRUTH);
// Field metadata. Expected values encoded in the field names.
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::ArrayCapacity::i10_4, 4);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::ArrayCapacity::f16_le2, 2);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::ArrayCapacity::unaligned_bitpacked_3, 3);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::ArrayCapacity::bytes_lt3, 2);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::ArrayCapacity::bytes_3, 3);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::ArrayCapacity::u2_le4, 4);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::ArrayCapacity::delimited_fix_le2, 2);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::ArrayCapacity::u16_2, 2);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::ArrayCapacity::aligned_bitpacked_3, 3);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::ArrayCapacity::unaligned_bitpacked_lt3, 2);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::ArrayCapacity::delimited_var_2, 2);
EXPECT_THAT(regulated::basics::Struct__0_1::_traits_::ArrayCapacity::aligned_bitpacked_le3, 3);
}
TEST(ConstantTests, Union)
{
// Type parameters.
EXPECT_FALSE(regulated::basics::Union_0_1::_traits_::HasFixedPortID);
EXPECT_THAT(regulated::basics::Union_0_1::_traits_::FullNameAndVersion(), StrEq("regulated.basics.Union.0.1"));
EXPECT_THAT(regulated::basics::Union_0_1::_traits_::ExtentBytes,
1U + regulated::basics::Struct__0_1::_traits_::ExtentBytes); // Largest option + union tag field
EXPECT_THAT(regulated::basics::Union_0_1::VariantType::MAX_INDEX, 3);
// Field metadata. Expected values encoded in the field names.
EXPECT_THAT(regulated::basics::Union_0_1::_traits_::ArrayCapacity::delimited_fix_le2, 2);
EXPECT_THAT(regulated::basics::Union_0_1::_traits_::ArrayCapacity::delimited_var_le2, 2);
}
TEST(ConstantTests, Service)
{
// Type parameters.
EXPECT_TRUE(regulated::basics::Service_0_1::_traits_::IsService);
EXPECT_TRUE(regulated::basics::Service_0_1::_traits_::IsServiceType);
EXPECT_TRUE(regulated::basics::Service_0_1::_traits_::HasFixedPortID);
EXPECT_THAT(regulated::basics::Service_0_1::_traits_::FixedPortId, 300);
EXPECT_THAT(regulated::basics::Service_0_1::_traits_::FullNameAndVersion(),
StrEq("regulated.basics.Service.0.1"));
EXPECT_FALSE(regulated::basics::Service::Request_0_1::_traits_::IsService);
EXPECT_TRUE(regulated::basics::Service::Request_0_1::_traits_::IsServiceType);
EXPECT_TRUE(regulated::basics::Service::Request_0_1::_traits_::IsRequest);
EXPECT_FALSE(regulated::basics::Service::Request_0_1::_traits_::IsResponse);
EXPECT_THAT(regulated::basics::Service::Request_0_1::_traits_::FullNameAndVersion(),
StrEq("regulated.basics.Service.Request.0.1"));
EXPECT_FALSE(regulated::basics::Service::Response_0_1::_traits_::IsService);
EXPECT_TRUE(regulated::basics::Service::Response_0_1::_traits_::IsServiceType);
EXPECT_TRUE(regulated::basics::Service::Response_0_1::_traits_::IsResponse);
EXPECT_FALSE(regulated::basics::Service::Response_0_1::_traits_::IsRequest);
EXPECT_THAT(regulated::basics::Service::Response_0_1::_traits_::FullNameAndVersion(),
StrEq("regulated.basics.Service.Response.0.1"));
// Application constants.
EXPECT_THAT(regulated::basics::Service::Request_0_1::HALF, DoubleNear(0.5, 1e-9));
EXPECT_THAT(regulated::basics::Service::Response_0_1::ONE_TENTH, FloatNear(0.1f, 1e-9f));
}