2 * Copyright (c) 2014-present, Facebook, Inc.
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
8 // @Generated by gentest/gentest.rb from gentest/fixtures/YGFlexDirectionTest.html
10 #include <gtest/gtest.h>
11 #include <yoga/Yoga.h>
13 TEST(YogaTest, flex_direction_column_no_height) {
14 const YGConfigRef config = YGConfigNew();
16 const YGNodeRef root = YGNodeNewWithConfig(config);
17 YGNodeStyleSetWidth(root, 100);
19 const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
20 YGNodeStyleSetHeight(root_child0, 10);
21 YGNodeInsertChild(root, root_child0, 0);
23 const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
24 YGNodeStyleSetHeight(root_child1, 10);
25 YGNodeInsertChild(root, root_child1, 1);
27 const YGNodeRef root_child2 = YGNodeNewWithConfig(config);
28 YGNodeStyleSetHeight(root_child2, 10);
29 YGNodeInsertChild(root, root_child2, 2);
30 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
32 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
33 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
34 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
35 ASSERT_FLOAT_EQ(30, YGNodeLayoutGetHeight(root));
37 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
38 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
39 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child0));
40 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
42 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1));
43 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1));
44 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child1));
45 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
47 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
48 ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2));
49 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child2));
50 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
52 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
54 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
55 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
56 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
57 ASSERT_FLOAT_EQ(30, YGNodeLayoutGetHeight(root));
59 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
60 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
61 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child0));
62 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
64 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1));
65 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1));
66 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child1));
67 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
69 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
70 ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2));
71 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child2));
72 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
74 YGNodeFreeRecursive(root);
79 TEST(YogaTest, flex_direction_row_no_width) {
80 const YGConfigRef config = YGConfigNew();
82 const YGNodeRef root = YGNodeNewWithConfig(config);
83 YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow);
84 YGNodeStyleSetHeight(root, 100);
86 const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
87 YGNodeStyleSetWidth(root_child0, 10);
88 YGNodeInsertChild(root, root_child0, 0);
90 const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
91 YGNodeStyleSetWidth(root_child1, 10);
92 YGNodeInsertChild(root, root_child1, 1);
94 const YGNodeRef root_child2 = YGNodeNewWithConfig(config);
95 YGNodeStyleSetWidth(root_child2, 10);
96 YGNodeInsertChild(root, root_child2, 2);
97 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
99 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
100 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
101 ASSERT_FLOAT_EQ(30, YGNodeLayoutGetWidth(root));
102 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
104 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
105 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
106 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
107 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
109 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetLeft(root_child1));
110 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
111 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1));
112 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child1));
114 ASSERT_FLOAT_EQ(20, YGNodeLayoutGetLeft(root_child2));
115 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2));
116 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2));
117 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child2));
119 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
121 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
122 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
123 ASSERT_FLOAT_EQ(30, YGNodeLayoutGetWidth(root));
124 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
126 ASSERT_FLOAT_EQ(20, YGNodeLayoutGetLeft(root_child0));
127 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
128 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
129 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
131 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetLeft(root_child1));
132 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
133 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1));
134 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child1));
136 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
137 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2));
138 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2));
139 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child2));
141 YGNodeFreeRecursive(root);
143 YGConfigFree(config);
146 TEST(YogaTest, flex_direction_column) {
147 const YGConfigRef config = YGConfigNew();
149 const YGNodeRef root = YGNodeNewWithConfig(config);
150 YGNodeStyleSetWidth(root, 100);
151 YGNodeStyleSetHeight(root, 100);
153 const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
154 YGNodeStyleSetHeight(root_child0, 10);
155 YGNodeInsertChild(root, root_child0, 0);
157 const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
158 YGNodeStyleSetHeight(root_child1, 10);
159 YGNodeInsertChild(root, root_child1, 1);
161 const YGNodeRef root_child2 = YGNodeNewWithConfig(config);
162 YGNodeStyleSetHeight(root_child2, 10);
163 YGNodeInsertChild(root, root_child2, 2);
164 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
166 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
167 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
168 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
169 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
171 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
172 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
173 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child0));
174 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
176 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1));
177 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1));
178 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child1));
179 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
181 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
182 ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2));
183 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child2));
184 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
186 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
188 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
189 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
190 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
191 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
193 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
194 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
195 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child0));
196 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
198 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1));
199 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1));
200 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child1));
201 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
203 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
204 ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2));
205 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child2));
206 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
208 YGNodeFreeRecursive(root);
210 YGConfigFree(config);
213 TEST(YogaTest, flex_direction_row) {
214 const YGConfigRef config = YGConfigNew();
216 const YGNodeRef root = YGNodeNewWithConfig(config);
217 YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow);
218 YGNodeStyleSetWidth(root, 100);
219 YGNodeStyleSetHeight(root, 100);
221 const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
222 YGNodeStyleSetWidth(root_child0, 10);
223 YGNodeInsertChild(root, root_child0, 0);
225 const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
226 YGNodeStyleSetWidth(root_child1, 10);
227 YGNodeInsertChild(root, root_child1, 1);
229 const YGNodeRef root_child2 = YGNodeNewWithConfig(config);
230 YGNodeStyleSetWidth(root_child2, 10);
231 YGNodeInsertChild(root, root_child2, 2);
232 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
234 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
235 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
236 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
237 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
239 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
240 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
241 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
242 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
244 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetLeft(root_child1));
245 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
246 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1));
247 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child1));
249 ASSERT_FLOAT_EQ(20, YGNodeLayoutGetLeft(root_child2));
250 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2));
251 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2));
252 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child2));
254 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
256 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
257 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
258 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
259 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
261 ASSERT_FLOAT_EQ(90, YGNodeLayoutGetLeft(root_child0));
262 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
263 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
264 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
266 ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child1));
267 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
268 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1));
269 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child1));
271 ASSERT_FLOAT_EQ(70, YGNodeLayoutGetLeft(root_child2));
272 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2));
273 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2));
274 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child2));
276 YGNodeFreeRecursive(root);
278 YGConfigFree(config);
281 TEST(YogaTest, flex_direction_column_reverse) {
282 const YGConfigRef config = YGConfigNew();
284 const YGNodeRef root = YGNodeNewWithConfig(config);
285 YGNodeStyleSetFlexDirection(root, YGFlexDirectionColumnReverse);
286 YGNodeStyleSetWidth(root, 100);
287 YGNodeStyleSetHeight(root, 100);
289 const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
290 YGNodeStyleSetHeight(root_child0, 10);
291 YGNodeInsertChild(root, root_child0, 0);
293 const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
294 YGNodeStyleSetHeight(root_child1, 10);
295 YGNodeInsertChild(root, root_child1, 1);
297 const YGNodeRef root_child2 = YGNodeNewWithConfig(config);
298 YGNodeStyleSetHeight(root_child2, 10);
299 YGNodeInsertChild(root, root_child2, 2);
300 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
302 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
303 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
304 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
305 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
307 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
308 ASSERT_FLOAT_EQ(90, YGNodeLayoutGetTop(root_child0));
309 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child0));
310 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
312 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1));
313 ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child1));
314 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child1));
315 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
317 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
318 ASSERT_FLOAT_EQ(70, YGNodeLayoutGetTop(root_child2));
319 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child2));
320 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
322 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
324 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
325 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
326 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
327 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
329 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
330 ASSERT_FLOAT_EQ(90, YGNodeLayoutGetTop(root_child0));
331 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child0));
332 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
334 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1));
335 ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child1));
336 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child1));
337 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
339 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
340 ASSERT_FLOAT_EQ(70, YGNodeLayoutGetTop(root_child2));
341 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child2));
342 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
344 YGNodeFreeRecursive(root);
346 YGConfigFree(config);
349 TEST(YogaTest, flex_direction_row_reverse) {
350 const YGConfigRef config = YGConfigNew();
352 const YGNodeRef root = YGNodeNewWithConfig(config);
353 YGNodeStyleSetFlexDirection(root, YGFlexDirectionRowReverse);
354 YGNodeStyleSetWidth(root, 100);
355 YGNodeStyleSetHeight(root, 100);
357 const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
358 YGNodeStyleSetWidth(root_child0, 10);
359 YGNodeInsertChild(root, root_child0, 0);
361 const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
362 YGNodeStyleSetWidth(root_child1, 10);
363 YGNodeInsertChild(root, root_child1, 1);
365 const YGNodeRef root_child2 = YGNodeNewWithConfig(config);
366 YGNodeStyleSetWidth(root_child2, 10);
367 YGNodeInsertChild(root, root_child2, 2);
368 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
370 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
371 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
372 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
373 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
375 ASSERT_FLOAT_EQ(90, YGNodeLayoutGetLeft(root_child0));
376 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
377 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
378 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
380 ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child1));
381 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
382 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1));
383 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child1));
385 ASSERT_FLOAT_EQ(70, YGNodeLayoutGetLeft(root_child2));
386 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2));
387 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2));
388 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child2));
390 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
392 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
393 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
394 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
395 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
397 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
398 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
399 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
400 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
402 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetLeft(root_child1));
403 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
404 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1));
405 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child1));
407 ASSERT_FLOAT_EQ(20, YGNodeLayoutGetLeft(root_child2));
408 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2));
409 ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2));
410 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child2));
412 YGNodeFreeRecursive(root);
414 YGConfigFree(config);