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/YGAndroidNewsFeed.html
10 #include <gtest/gtest.h>
11 #include <yoga/Yoga.h>
13 TEST(YogaTest, android_news_feed) {
14 const YGConfigRef config = YGConfigNew();
16 const YGNodeRef root = YGNodeNewWithConfig(config);
17 YGNodeStyleSetAlignContent(root, YGAlignStretch);
18 YGNodeStyleSetWidth(root, 1080);
20 const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
21 YGNodeInsertChild(root, root_child0, 0);
23 const YGNodeRef root_child0_child0 = YGNodeNewWithConfig(config);
24 YGNodeStyleSetAlignContent(root_child0_child0, YGAlignStretch);
25 YGNodeInsertChild(root_child0, root_child0_child0, 0);
27 const YGNodeRef root_child0_child0_child0 = YGNodeNewWithConfig(config);
28 YGNodeStyleSetAlignContent(root_child0_child0_child0, YGAlignStretch);
29 YGNodeInsertChild(root_child0_child0, root_child0_child0_child0, 0);
31 const YGNodeRef root_child0_child0_child0_child0 =
32 YGNodeNewWithConfig(config);
33 YGNodeStyleSetFlexDirection(
34 root_child0_child0_child0_child0, YGFlexDirectionRow);
35 YGNodeStyleSetAlignContent(root_child0_child0_child0_child0, YGAlignStretch);
36 YGNodeStyleSetAlignItems(root_child0_child0_child0_child0, YGAlignFlexStart);
37 YGNodeStyleSetMargin(root_child0_child0_child0_child0, YGEdgeStart, 36);
38 YGNodeStyleSetMargin(root_child0_child0_child0_child0, YGEdgeTop, 24);
40 root_child0_child0_child0, root_child0_child0_child0_child0, 0);
42 const YGNodeRef root_child0_child0_child0_child0_child0 =
43 YGNodeNewWithConfig(config);
44 YGNodeStyleSetFlexDirection(
45 root_child0_child0_child0_child0_child0, YGFlexDirectionRow);
46 YGNodeStyleSetAlignContent(
47 root_child0_child0_child0_child0_child0, YGAlignStretch);
49 root_child0_child0_child0_child0,
50 root_child0_child0_child0_child0_child0,
53 const YGNodeRef root_child0_child0_child0_child0_child0_child0 =
54 YGNodeNewWithConfig(config);
55 YGNodeStyleSetAlignContent(
56 root_child0_child0_child0_child0_child0_child0, YGAlignStretch);
57 YGNodeStyleSetWidth(root_child0_child0_child0_child0_child0_child0, 120);
58 YGNodeStyleSetHeight(root_child0_child0_child0_child0_child0_child0, 120);
60 root_child0_child0_child0_child0_child0,
61 root_child0_child0_child0_child0_child0_child0,
64 const YGNodeRef root_child0_child0_child0_child0_child1 =
65 YGNodeNewWithConfig(config);
66 YGNodeStyleSetAlignContent(
67 root_child0_child0_child0_child0_child1, YGAlignStretch);
68 YGNodeStyleSetFlexShrink(root_child0_child0_child0_child0_child1, 1);
70 root_child0_child0_child0_child0_child1, YGEdgeRight, 36);
71 YGNodeStyleSetPadding(
72 root_child0_child0_child0_child0_child1, YGEdgeLeft, 36);
73 YGNodeStyleSetPadding(root_child0_child0_child0_child0_child1, YGEdgeTop, 21);
74 YGNodeStyleSetPadding(
75 root_child0_child0_child0_child0_child1, YGEdgeRight, 36);
76 YGNodeStyleSetPadding(
77 root_child0_child0_child0_child0_child1, YGEdgeBottom, 18);
79 root_child0_child0_child0_child0,
80 root_child0_child0_child0_child0_child1,
83 const YGNodeRef root_child0_child0_child0_child0_child1_child0 =
84 YGNodeNewWithConfig(config);
85 YGNodeStyleSetFlexDirection(
86 root_child0_child0_child0_child0_child1_child0, YGFlexDirectionRow);
87 YGNodeStyleSetAlignContent(
88 root_child0_child0_child0_child0_child1_child0, YGAlignStretch);
89 YGNodeStyleSetFlexShrink(root_child0_child0_child0_child0_child1_child0, 1);
91 root_child0_child0_child0_child0_child1,
92 root_child0_child0_child0_child0_child1_child0,
95 const YGNodeRef root_child0_child0_child0_child0_child1_child1 =
96 YGNodeNewWithConfig(config);
97 YGNodeStyleSetAlignContent(
98 root_child0_child0_child0_child0_child1_child1, YGAlignStretch);
99 YGNodeStyleSetFlexShrink(root_child0_child0_child0_child0_child1_child1, 1);
101 root_child0_child0_child0_child0_child1,
102 root_child0_child0_child0_child0_child1_child1,
105 const YGNodeRef root_child0_child0_child1 = YGNodeNewWithConfig(config);
106 YGNodeStyleSetAlignContent(root_child0_child0_child1, YGAlignStretch);
107 YGNodeInsertChild(root_child0_child0, root_child0_child0_child1, 1);
109 const YGNodeRef root_child0_child0_child1_child0 =
110 YGNodeNewWithConfig(config);
111 YGNodeStyleSetFlexDirection(
112 root_child0_child0_child1_child0, YGFlexDirectionRow);
113 YGNodeStyleSetAlignContent(root_child0_child0_child1_child0, YGAlignStretch);
114 YGNodeStyleSetAlignItems(root_child0_child0_child1_child0, YGAlignFlexStart);
115 YGNodeStyleSetMargin(root_child0_child0_child1_child0, YGEdgeStart, 174);
116 YGNodeStyleSetMargin(root_child0_child0_child1_child0, YGEdgeTop, 24);
118 root_child0_child0_child1, root_child0_child0_child1_child0, 0);
120 const YGNodeRef root_child0_child0_child1_child0_child0 =
121 YGNodeNewWithConfig(config);
122 YGNodeStyleSetFlexDirection(
123 root_child0_child0_child1_child0_child0, YGFlexDirectionRow);
124 YGNodeStyleSetAlignContent(
125 root_child0_child0_child1_child0_child0, YGAlignStretch);
127 root_child0_child0_child1_child0,
128 root_child0_child0_child1_child0_child0,
131 const YGNodeRef root_child0_child0_child1_child0_child0_child0 =
132 YGNodeNewWithConfig(config);
133 YGNodeStyleSetAlignContent(
134 root_child0_child0_child1_child0_child0_child0, YGAlignStretch);
135 YGNodeStyleSetWidth(root_child0_child0_child1_child0_child0_child0, 72);
136 YGNodeStyleSetHeight(root_child0_child0_child1_child0_child0_child0, 72);
138 root_child0_child0_child1_child0_child0,
139 root_child0_child0_child1_child0_child0_child0,
142 const YGNodeRef root_child0_child0_child1_child0_child1 =
143 YGNodeNewWithConfig(config);
144 YGNodeStyleSetAlignContent(
145 root_child0_child0_child1_child0_child1, YGAlignStretch);
146 YGNodeStyleSetFlexShrink(root_child0_child0_child1_child0_child1, 1);
147 YGNodeStyleSetMargin(
148 root_child0_child0_child1_child0_child1, YGEdgeRight, 36);
149 YGNodeStyleSetPadding(
150 root_child0_child0_child1_child0_child1, YGEdgeLeft, 36);
151 YGNodeStyleSetPadding(root_child0_child0_child1_child0_child1, YGEdgeTop, 21);
152 YGNodeStyleSetPadding(
153 root_child0_child0_child1_child0_child1, YGEdgeRight, 36);
154 YGNodeStyleSetPadding(
155 root_child0_child0_child1_child0_child1, YGEdgeBottom, 18);
157 root_child0_child0_child1_child0,
158 root_child0_child0_child1_child0_child1,
161 const YGNodeRef root_child0_child0_child1_child0_child1_child0 =
162 YGNodeNewWithConfig(config);
163 YGNodeStyleSetFlexDirection(
164 root_child0_child0_child1_child0_child1_child0, YGFlexDirectionRow);
165 YGNodeStyleSetAlignContent(
166 root_child0_child0_child1_child0_child1_child0, YGAlignStretch);
167 YGNodeStyleSetFlexShrink(root_child0_child0_child1_child0_child1_child0, 1);
169 root_child0_child0_child1_child0_child1,
170 root_child0_child0_child1_child0_child1_child0,
173 const YGNodeRef root_child0_child0_child1_child0_child1_child1 =
174 YGNodeNewWithConfig(config);
175 YGNodeStyleSetAlignContent(
176 root_child0_child0_child1_child0_child1_child1, YGAlignStretch);
177 YGNodeStyleSetFlexShrink(root_child0_child0_child1_child0_child1_child1, 1);
179 root_child0_child0_child1_child0_child1,
180 root_child0_child0_child1_child0_child1_child1,
182 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
184 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
185 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
186 ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root));
187 ASSERT_FLOAT_EQ(240, YGNodeLayoutGetHeight(root));
189 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
190 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
191 ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root_child0));
192 ASSERT_FLOAT_EQ(240, YGNodeLayoutGetHeight(root_child0));
194 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0));
195 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
196 ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root_child0_child0));
197 ASSERT_FLOAT_EQ(240, YGNodeLayoutGetHeight(root_child0_child0));
199 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0_child0));
200 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0_child0));
201 ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root_child0_child0_child0));
202 ASSERT_FLOAT_EQ(144, YGNodeLayoutGetHeight(root_child0_child0_child0));
204 ASSERT_FLOAT_EQ(36, YGNodeLayoutGetLeft(root_child0_child0_child0_child0));
205 ASSERT_FLOAT_EQ(24, YGNodeLayoutGetTop(root_child0_child0_child0_child0));
206 ASSERT_FLOAT_EQ(1044, YGNodeLayoutGetWidth(root_child0_child0_child0_child0));
207 ASSERT_FLOAT_EQ(120, YGNodeLayoutGetHeight(root_child0_child0_child0_child0));
210 0, YGNodeLayoutGetLeft(root_child0_child0_child0_child0_child0));
212 0, YGNodeLayoutGetTop(root_child0_child0_child0_child0_child0));
214 120, YGNodeLayoutGetWidth(root_child0_child0_child0_child0_child0));
216 120, YGNodeLayoutGetHeight(root_child0_child0_child0_child0_child0));
219 0, YGNodeLayoutGetLeft(root_child0_child0_child0_child0_child0_child0));
221 0, YGNodeLayoutGetTop(root_child0_child0_child0_child0_child0_child0));
224 YGNodeLayoutGetWidth(root_child0_child0_child0_child0_child0_child0));
227 YGNodeLayoutGetHeight(root_child0_child0_child0_child0_child0_child0));
230 120, YGNodeLayoutGetLeft(root_child0_child0_child0_child0_child1));
232 0, YGNodeLayoutGetTop(root_child0_child0_child0_child0_child1));
234 72, YGNodeLayoutGetWidth(root_child0_child0_child0_child0_child1));
236 39, YGNodeLayoutGetHeight(root_child0_child0_child0_child0_child1));
239 36, YGNodeLayoutGetLeft(root_child0_child0_child0_child0_child1_child0));
241 21, YGNodeLayoutGetTop(root_child0_child0_child0_child0_child1_child0));
243 0, YGNodeLayoutGetWidth(root_child0_child0_child0_child0_child1_child0));
245 0, YGNodeLayoutGetHeight(root_child0_child0_child0_child0_child1_child0));
248 36, YGNodeLayoutGetLeft(root_child0_child0_child0_child0_child1_child1));
250 21, YGNodeLayoutGetTop(root_child0_child0_child0_child0_child1_child1));
252 0, YGNodeLayoutGetWidth(root_child0_child0_child0_child0_child1_child1));
254 0, YGNodeLayoutGetHeight(root_child0_child0_child0_child0_child1_child1));
256 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0_child1));
257 ASSERT_FLOAT_EQ(144, YGNodeLayoutGetTop(root_child0_child0_child1));
258 ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root_child0_child0_child1));
259 ASSERT_FLOAT_EQ(96, YGNodeLayoutGetHeight(root_child0_child0_child1));
261 ASSERT_FLOAT_EQ(174, YGNodeLayoutGetLeft(root_child0_child0_child1_child0));
262 ASSERT_FLOAT_EQ(24, YGNodeLayoutGetTop(root_child0_child0_child1_child0));
263 ASSERT_FLOAT_EQ(906, YGNodeLayoutGetWidth(root_child0_child0_child1_child0));
264 ASSERT_FLOAT_EQ(72, YGNodeLayoutGetHeight(root_child0_child0_child1_child0));
267 0, YGNodeLayoutGetLeft(root_child0_child0_child1_child0_child0));
269 0, YGNodeLayoutGetTop(root_child0_child0_child1_child0_child0));
271 72, YGNodeLayoutGetWidth(root_child0_child0_child1_child0_child0));
273 72, YGNodeLayoutGetHeight(root_child0_child0_child1_child0_child0));
276 0, YGNodeLayoutGetLeft(root_child0_child0_child1_child0_child0_child0));
278 0, YGNodeLayoutGetTop(root_child0_child0_child1_child0_child0_child0));
280 72, YGNodeLayoutGetWidth(root_child0_child0_child1_child0_child0_child0));
283 YGNodeLayoutGetHeight(root_child0_child0_child1_child0_child0_child0));
286 72, YGNodeLayoutGetLeft(root_child0_child0_child1_child0_child1));
288 0, YGNodeLayoutGetTop(root_child0_child0_child1_child0_child1));
290 72, YGNodeLayoutGetWidth(root_child0_child0_child1_child0_child1));
292 39, YGNodeLayoutGetHeight(root_child0_child0_child1_child0_child1));
295 36, YGNodeLayoutGetLeft(root_child0_child0_child1_child0_child1_child0));
297 21, YGNodeLayoutGetTop(root_child0_child0_child1_child0_child1_child0));
299 0, YGNodeLayoutGetWidth(root_child0_child0_child1_child0_child1_child0));
301 0, YGNodeLayoutGetHeight(root_child0_child0_child1_child0_child1_child0));
304 36, YGNodeLayoutGetLeft(root_child0_child0_child1_child0_child1_child1));
306 21, YGNodeLayoutGetTop(root_child0_child0_child1_child0_child1_child1));
308 0, YGNodeLayoutGetWidth(root_child0_child0_child1_child0_child1_child1));
310 0, YGNodeLayoutGetHeight(root_child0_child0_child1_child0_child1_child1));
312 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
314 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
315 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
316 ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root));
317 ASSERT_FLOAT_EQ(240, YGNodeLayoutGetHeight(root));
319 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
320 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
321 ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root_child0));
322 ASSERT_FLOAT_EQ(240, YGNodeLayoutGetHeight(root_child0));
324 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0));
325 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
326 ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root_child0_child0));
327 ASSERT_FLOAT_EQ(240, YGNodeLayoutGetHeight(root_child0_child0));
329 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0_child0));
330 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0_child0));
331 ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root_child0_child0_child0));
332 ASSERT_FLOAT_EQ(144, YGNodeLayoutGetHeight(root_child0_child0_child0));
334 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0_child0_child0));
335 ASSERT_FLOAT_EQ(24, YGNodeLayoutGetTop(root_child0_child0_child0_child0));
336 ASSERT_FLOAT_EQ(1044, YGNodeLayoutGetWidth(root_child0_child0_child0_child0));
337 ASSERT_FLOAT_EQ(120, YGNodeLayoutGetHeight(root_child0_child0_child0_child0));
340 924, YGNodeLayoutGetLeft(root_child0_child0_child0_child0_child0));
342 0, YGNodeLayoutGetTop(root_child0_child0_child0_child0_child0));
344 120, YGNodeLayoutGetWidth(root_child0_child0_child0_child0_child0));
346 120, YGNodeLayoutGetHeight(root_child0_child0_child0_child0_child0));
349 0, YGNodeLayoutGetLeft(root_child0_child0_child0_child0_child0_child0));
351 0, YGNodeLayoutGetTop(root_child0_child0_child0_child0_child0_child0));
354 YGNodeLayoutGetWidth(root_child0_child0_child0_child0_child0_child0));
357 YGNodeLayoutGetHeight(root_child0_child0_child0_child0_child0_child0));
360 816, YGNodeLayoutGetLeft(root_child0_child0_child0_child0_child1));
362 0, YGNodeLayoutGetTop(root_child0_child0_child0_child0_child1));
364 72, YGNodeLayoutGetWidth(root_child0_child0_child0_child0_child1));
366 39, YGNodeLayoutGetHeight(root_child0_child0_child0_child0_child1));
369 36, YGNodeLayoutGetLeft(root_child0_child0_child0_child0_child1_child0));
371 21, YGNodeLayoutGetTop(root_child0_child0_child0_child0_child1_child0));
373 0, YGNodeLayoutGetWidth(root_child0_child0_child0_child0_child1_child0));
375 0, YGNodeLayoutGetHeight(root_child0_child0_child0_child0_child1_child0));
378 36, YGNodeLayoutGetLeft(root_child0_child0_child0_child0_child1_child1));
380 21, YGNodeLayoutGetTop(root_child0_child0_child0_child0_child1_child1));
382 0, YGNodeLayoutGetWidth(root_child0_child0_child0_child0_child1_child1));
384 0, YGNodeLayoutGetHeight(root_child0_child0_child0_child0_child1_child1));
386 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0_child1));
387 ASSERT_FLOAT_EQ(144, YGNodeLayoutGetTop(root_child0_child0_child1));
388 ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root_child0_child0_child1));
389 ASSERT_FLOAT_EQ(96, YGNodeLayoutGetHeight(root_child0_child0_child1));
391 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0_child1_child0));
392 ASSERT_FLOAT_EQ(24, YGNodeLayoutGetTop(root_child0_child0_child1_child0));
393 ASSERT_FLOAT_EQ(906, YGNodeLayoutGetWidth(root_child0_child0_child1_child0));
394 ASSERT_FLOAT_EQ(72, YGNodeLayoutGetHeight(root_child0_child0_child1_child0));
397 834, YGNodeLayoutGetLeft(root_child0_child0_child1_child0_child0));
399 0, YGNodeLayoutGetTop(root_child0_child0_child1_child0_child0));
401 72, YGNodeLayoutGetWidth(root_child0_child0_child1_child0_child0));
403 72, YGNodeLayoutGetHeight(root_child0_child0_child1_child0_child0));
406 0, YGNodeLayoutGetLeft(root_child0_child0_child1_child0_child0_child0));
408 0, YGNodeLayoutGetTop(root_child0_child0_child1_child0_child0_child0));
410 72, YGNodeLayoutGetWidth(root_child0_child0_child1_child0_child0_child0));
413 YGNodeLayoutGetHeight(root_child0_child0_child1_child0_child0_child0));
416 726, YGNodeLayoutGetLeft(root_child0_child0_child1_child0_child1));
418 0, YGNodeLayoutGetTop(root_child0_child0_child1_child0_child1));
420 72, YGNodeLayoutGetWidth(root_child0_child0_child1_child0_child1));
422 39, YGNodeLayoutGetHeight(root_child0_child0_child1_child0_child1));
425 36, YGNodeLayoutGetLeft(root_child0_child0_child1_child0_child1_child0));
427 21, YGNodeLayoutGetTop(root_child0_child0_child1_child0_child1_child0));
429 0, YGNodeLayoutGetWidth(root_child0_child0_child1_child0_child1_child0));
431 0, YGNodeLayoutGetHeight(root_child0_child0_child1_child0_child1_child0));
434 36, YGNodeLayoutGetLeft(root_child0_child0_child1_child0_child1_child1));
436 21, YGNodeLayoutGetTop(root_child0_child0_child1_child0_child1_child1));
438 0, YGNodeLayoutGetWidth(root_child0_child0_child1_child0_child1_child1));
440 0, YGNodeLayoutGetHeight(root_child0_child0_child1_child0_child1_child1));
442 YGNodeFreeRecursive(root);
444 YGConfigFree(config);