Branch data Line data Source code
1 : : /*
2 : : * ----------------- BEGIN LICENSE BLOCK ---------------------------------
3 : : *
4 : : * Copyright (C) 2018-2021 Intel Corporation
5 : : *
6 : : * SPDX-License-Identifier: MIT
7 : : *
8 : : * ----------------- END LICENSE BLOCK -----------------------------------
9 : : */
10 : :
11 : : /*
12 : : * Generated file
13 : : */
14 : :
15 : : #if defined(__clang__) && (__clang_major__ >= 7)
16 : : #pragma GCC diagnostic push
17 : : #pragma GCC diagnostic ignored "-Wself-assign-overloaded"
18 : : #endif
19 : :
20 : : #include <gtest/gtest.h>
21 : : #include <limits>
22 : : #include "ad/map/lane/ContactType.hpp"
23 : :
24 : 2 : TEST(ContactTypeTests, testFromString)
25 : : {
26 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("INVALID"), ::ad::map::lane::ContactType::INVALID);
+ - - + -
- - - -
- ]
27 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::INVALID"),
+ - - + -
- - - -
- ]
28 : : ::ad::map::lane::ContactType::INVALID);
29 : :
30 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("UNKNOWN"), ::ad::map::lane::ContactType::UNKNOWN);
+ - - + -
- - - -
- ]
31 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::UNKNOWN"),
+ - - + -
- - - -
- ]
32 : : ::ad::map::lane::ContactType::UNKNOWN);
33 : :
34 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("FREE"), ::ad::map::lane::ContactType::FREE);
+ - - + -
- - - -
- ]
35 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::FREE"),
+ - - + -
- - - -
- ]
36 : : ::ad::map::lane::ContactType::FREE);
37 : :
38 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("LANE_CHANGE"), ::ad::map::lane::ContactType::LANE_CHANGE);
+ - - + -
- - - -
- ]
39 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::LANE_CHANGE"),
+ - - + -
- - - -
- ]
40 : : ::ad::map::lane::ContactType::LANE_CHANGE);
41 : :
42 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("LANE_CONTINUATION"),
+ - - + -
- - - -
- ]
43 : : ::ad::map::lane::ContactType::LANE_CONTINUATION);
44 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::LANE_CONTINUATION"),
+ - - + -
- - - -
- ]
45 : : ::ad::map::lane::ContactType::LANE_CONTINUATION);
46 : :
47 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("LANE_END"), ::ad::map::lane::ContactType::LANE_END);
+ - - + -
- - - -
- ]
48 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::LANE_END"),
+ - - + -
- - - -
- ]
49 : : ::ad::map::lane::ContactType::LANE_END);
50 : :
51 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("SINGLE_POINT"), ::ad::map::lane::ContactType::SINGLE_POINT);
+ - - + -
- - - -
- ]
52 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::SINGLE_POINT"),
+ - - + -
- - - -
- ]
53 : : ::ad::map::lane::ContactType::SINGLE_POINT);
54 : :
55 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("STOP"), ::ad::map::lane::ContactType::STOP);
+ - - + -
- - - -
- ]
56 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::STOP"),
+ - - + -
- - - -
- ]
57 : : ::ad::map::lane::ContactType::STOP);
58 : :
59 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("STOP_ALL"), ::ad::map::lane::ContactType::STOP_ALL);
+ - - + -
- - - -
- ]
60 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::STOP_ALL"),
+ - - + -
- - - -
- ]
61 : : ::ad::map::lane::ContactType::STOP_ALL);
62 : :
63 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("YIELD"), ::ad::map::lane::ContactType::YIELD);
+ - - + -
- - - -
- ]
64 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::YIELD"),
+ - - + -
- - - -
- ]
65 : : ::ad::map::lane::ContactType::YIELD);
66 : :
67 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("GATE_BARRIER"), ::ad::map::lane::ContactType::GATE_BARRIER);
+ - - + -
- - - -
- ]
68 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::GATE_BARRIER"),
+ - - + -
- - - -
- ]
69 : : ::ad::map::lane::ContactType::GATE_BARRIER);
70 : :
71 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("GATE_TOLBOOTH"), ::ad::map::lane::ContactType::GATE_TOLBOOTH);
+ - - + -
- - - -
- ]
72 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::GATE_TOLBOOTH"),
+ - - + -
- - - -
- ]
73 : : ::ad::map::lane::ContactType::GATE_TOLBOOTH);
74 : :
75 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("GATE_SPIKES"), ::ad::map::lane::ContactType::GATE_SPIKES);
+ - - + -
- - - -
- ]
76 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::GATE_SPIKES"),
+ - - + -
- - - -
- ]
77 : : ::ad::map::lane::ContactType::GATE_SPIKES);
78 : :
79 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("GATE_SPIKES_CONTRA"),
+ - - + -
- - - -
- ]
80 : : ::ad::map::lane::ContactType::GATE_SPIKES_CONTRA);
81 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::GATE_SPIKES_CONTRA"),
+ - - + -
- - - -
- ]
82 : : ::ad::map::lane::ContactType::GATE_SPIKES_CONTRA);
83 : :
84 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("CURB_UP"), ::ad::map::lane::ContactType::CURB_UP);
+ - - + -
- - - -
- ]
85 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::CURB_UP"),
+ - - + -
- - - -
- ]
86 : : ::ad::map::lane::ContactType::CURB_UP);
87 : :
88 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("CURB_DOWN"), ::ad::map::lane::ContactType::CURB_DOWN);
+ - - + -
- - - -
- ]
89 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::CURB_DOWN"),
+ - - + -
- - - -
- ]
90 : : ::ad::map::lane::ContactType::CURB_DOWN);
91 : :
92 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("SPEED_BUMP"), ::ad::map::lane::ContactType::SPEED_BUMP);
+ - - + -
- - - -
- ]
93 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::SPEED_BUMP"),
+ - - + -
- - - -
- ]
94 : : ::ad::map::lane::ContactType::SPEED_BUMP);
95 : :
96 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("TRAFFIC_LIGHT"), ::ad::map::lane::ContactType::TRAFFIC_LIGHT);
+ - - + -
- - - -
- ]
97 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::TRAFFIC_LIGHT"),
+ - - + -
- - - -
- ]
98 : : ::ad::map::lane::ContactType::TRAFFIC_LIGHT);
99 : :
100 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("CROSSWALK"), ::ad::map::lane::ContactType::CROSSWALK);
+ - - + -
- - - -
- ]
101 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::CROSSWALK"),
+ - - + -
- - - -
- ]
102 : : ::ad::map::lane::ContactType::CROSSWALK);
103 : :
104 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("PRIO_TO_RIGHT"), ::ad::map::lane::ContactType::PRIO_TO_RIGHT);
+ - - + -
- - - -
- ]
105 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::PRIO_TO_RIGHT"),
+ - - + -
- - - -
- ]
106 : : ::ad::map::lane::ContactType::PRIO_TO_RIGHT);
107 : :
108 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("RIGHT_OF_WAY"), ::ad::map::lane::ContactType::RIGHT_OF_WAY);
+ - - + -
- - - -
- ]
109 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::RIGHT_OF_WAY"),
+ - - + -
- - - -
- ]
110 : : ::ad::map::lane::ContactType::RIGHT_OF_WAY);
111 : :
112 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("PRIO_TO_RIGHT_AND_STRAIGHT"),
+ - - + -
- - - -
- ]
113 : : ::ad::map::lane::ContactType::PRIO_TO_RIGHT_AND_STRAIGHT);
114 [ + - + - : 1 : ASSERT_EQ(fromString<::ad::map::lane::ContactType>("::ad::map::lane::ContactType::PRIO_TO_RIGHT_AND_STRAIGHT"),
+ - - + -
- - - -
- ]
115 : : ::ad::map::lane::ContactType::PRIO_TO_RIGHT_AND_STRAIGHT);
116 : :
117 [ + - + - : 4 : EXPECT_ANY_THROW({ fromString<::ad::map::lane::ContactType>("NOT A VALID ENUM LITERAL"); });
+ - + - -
+ - + - -
- - ]
118 : : }
119 : :
120 : 2 : TEST(ContactTypeTests, testToString)
121 : : {
122 : 1 : int32_t minValue = std::numeric_limits<int32_t>::max();
123 : 1 : int32_t maxValue = std::numeric_limits<int32_t>::min();
124 : :
125 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::INVALID), "::ad::map::lane::ContactType::INVALID");
- + - - -
- - - ]
126 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::INVALID));
127 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::INVALID));
128 : :
129 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::UNKNOWN), "::ad::map::lane::ContactType::UNKNOWN");
- + - - -
- - - ]
130 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::UNKNOWN));
131 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::UNKNOWN));
132 : :
133 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::FREE), "::ad::map::lane::ContactType::FREE");
- + - - -
- - - ]
134 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::FREE));
135 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::FREE));
136 : :
137 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::LANE_CHANGE), "::ad::map::lane::ContactType::LANE_CHANGE");
- + - - -
- - - ]
138 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::LANE_CHANGE));
139 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::LANE_CHANGE));
140 : :
141 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::LANE_CONTINUATION),
- + - - -
- - - ]
142 : : "::ad::map::lane::ContactType::LANE_CONTINUATION");
143 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::LANE_CONTINUATION));
144 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::LANE_CONTINUATION));
145 : :
146 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::LANE_END), "::ad::map::lane::ContactType::LANE_END");
- + - - -
- - - ]
147 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::LANE_END));
148 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::LANE_END));
149 : :
150 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::SINGLE_POINT), "::ad::map::lane::ContactType::SINGLE_POINT");
- + - - -
- - - ]
151 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::SINGLE_POINT));
152 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::SINGLE_POINT));
153 : :
154 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::STOP), "::ad::map::lane::ContactType::STOP");
- + - - -
- - - ]
155 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::STOP));
156 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::STOP));
157 : :
158 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::STOP_ALL), "::ad::map::lane::ContactType::STOP_ALL");
- + - - -
- - - ]
159 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::STOP_ALL));
160 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::STOP_ALL));
161 : :
162 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::YIELD), "::ad::map::lane::ContactType::YIELD");
- + - - -
- - - ]
163 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::YIELD));
164 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::YIELD));
165 : :
166 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::GATE_BARRIER), "::ad::map::lane::ContactType::GATE_BARRIER");
- + - - -
- - - ]
167 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::GATE_BARRIER));
168 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::GATE_BARRIER));
169 : :
170 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::GATE_TOLBOOTH), "::ad::map::lane::ContactType::GATE_TOLBOOTH");
- + - - -
- - - ]
171 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::GATE_TOLBOOTH));
172 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::GATE_TOLBOOTH));
173 : :
174 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::GATE_SPIKES), "::ad::map::lane::ContactType::GATE_SPIKES");
- + - - -
- - - ]
175 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::GATE_SPIKES));
176 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::GATE_SPIKES));
177 : :
178 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::GATE_SPIKES_CONTRA),
- + - - -
- - - ]
179 : : "::ad::map::lane::ContactType::GATE_SPIKES_CONTRA");
180 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::GATE_SPIKES_CONTRA));
181 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::GATE_SPIKES_CONTRA));
182 : :
183 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::CURB_UP), "::ad::map::lane::ContactType::CURB_UP");
- + - - -
- - - ]
184 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::CURB_UP));
185 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::CURB_UP));
186 : :
187 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::CURB_DOWN), "::ad::map::lane::ContactType::CURB_DOWN");
- + - - -
- - - ]
188 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::CURB_DOWN));
189 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::CURB_DOWN));
190 : :
191 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::SPEED_BUMP), "::ad::map::lane::ContactType::SPEED_BUMP");
- + - - -
- - - ]
192 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::SPEED_BUMP));
193 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::SPEED_BUMP));
194 : :
195 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::TRAFFIC_LIGHT), "::ad::map::lane::ContactType::TRAFFIC_LIGHT");
- + - - -
- - - ]
196 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::TRAFFIC_LIGHT));
197 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::TRAFFIC_LIGHT));
198 : :
199 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::CROSSWALK), "::ad::map::lane::ContactType::CROSSWALK");
- + - - -
- - - ]
200 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::CROSSWALK));
201 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::CROSSWALK));
202 : :
203 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::PRIO_TO_RIGHT), "::ad::map::lane::ContactType::PRIO_TO_RIGHT");
- + - - -
- - - ]
204 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::PRIO_TO_RIGHT));
205 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::PRIO_TO_RIGHT));
206 : :
207 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::RIGHT_OF_WAY), "::ad::map::lane::ContactType::RIGHT_OF_WAY");
- + - - -
- - - ]
208 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::RIGHT_OF_WAY));
209 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::RIGHT_OF_WAY));
210 : :
211 [ + - + - : 2 : ASSERT_EQ(toString(::ad::map::lane::ContactType::PRIO_TO_RIGHT_AND_STRAIGHT),
- + - - -
- - - ]
212 : : "::ad::map::lane::ContactType::PRIO_TO_RIGHT_AND_STRAIGHT");
213 : 1 : minValue = std::min(minValue, static_cast<int32_t>(::ad::map::lane::ContactType::PRIO_TO_RIGHT_AND_STRAIGHT));
214 : 1 : maxValue = std::max(maxValue, static_cast<int32_t>(::ad::map::lane::ContactType::PRIO_TO_RIGHT_AND_STRAIGHT));
215 : :
216 [ + - + - : 2 : ASSERT_EQ(toString(static_cast<::ad::map::lane::ContactType>(minValue - 1)), "UNKNOWN ENUM VALUE");
- + - - -
- - - ]
217 [ + - + - : 2 : ASSERT_EQ(toString(static_cast<::ad::map::lane::ContactType>(maxValue + 1)), "UNKNOWN ENUM VALUE");
- + - - -
- - - ]
218 : : }
219 : :
220 : 2 : TEST(ContactTypeTests, ostreamOperatorTest)
221 : : {
222 [ + - ]: 1 : std::stringstream stream;
223 : 1 : ::ad::map::lane::ContactType value(::ad::map::lane::ContactType::INVALID);
224 [ + - ]: 1 : stream << value;
225 [ + - + - : 1 : ASSERT_GT(stream.str().size(), 0u);
- + - - -
- - - ]
226 : : }
227 : :
228 : : #if defined(__clang__) && (__clang_major__ >= 7)
229 : : #pragma GCC diagnostic pop
230 : : #endif
|