Rebase of facebook flexbox to yoga
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-third-party / yoga / YGAlignSelfTest.cpp
1 /**
2  * Copyright (c) 2014-present, Facebook, Inc.
3  *
4  * This source code is licensed under the MIT license found in the
5  * LICENSE file in the root directory of this source tree.
6  */
7
8 // @Generated by gentest/gentest.rb from gentest/fixtures/YGAlignSelfTest.html
9
10 #include <gtest/gtest.h>
11 #include <yoga/Yoga.h>
12
13 TEST(YogaTest, align_self_center) {
14   const YGConfigRef config = YGConfigNew();
15
16   const YGNodeRef root = YGNodeNewWithConfig(config);
17   YGNodeStyleSetWidth(root, 100);
18   YGNodeStyleSetHeight(root, 100);
19
20   const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
21   YGNodeStyleSetAlignSelf(root_child0, YGAlignCenter);
22   YGNodeStyleSetWidth(root_child0, 10);
23   YGNodeStyleSetHeight(root_child0, 10);
24   YGNodeInsertChild(root, root_child0, 0);
25   YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
26
27   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
28   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
29   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
30   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
31
32   ASSERT_FLOAT_EQ(45, YGNodeLayoutGetLeft(root_child0));
33   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
34   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
35   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
36
37   YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
38
39   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
40   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
41   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
42   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
43
44   ASSERT_FLOAT_EQ(45, YGNodeLayoutGetLeft(root_child0));
45   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
46   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
47   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
48
49   YGNodeFreeRecursive(root);
50
51   YGConfigFree(config);
52 }
53
54 TEST(YogaTest, align_self_flex_end) {
55   const YGConfigRef config = YGConfigNew();
56
57   const YGNodeRef root = YGNodeNewWithConfig(config);
58   YGNodeStyleSetWidth(root, 100);
59   YGNodeStyleSetHeight(root, 100);
60
61   const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
62   YGNodeStyleSetAlignSelf(root_child0, YGAlignFlexEnd);
63   YGNodeStyleSetWidth(root_child0, 10);
64   YGNodeStyleSetHeight(root_child0, 10);
65   YGNodeInsertChild(root, root_child0, 0);
66   YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
67
68   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
69   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
70   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
71   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
72
73   ASSERT_FLOAT_EQ(90, YGNodeLayoutGetLeft(root_child0));
74   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
75   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
76   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
77
78   YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
79
80   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
81   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
82   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
83   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
84
85   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
86   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
87   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
88   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
89
90   YGNodeFreeRecursive(root);
91
92   YGConfigFree(config);
93 }
94
95 TEST(YogaTest, align_self_flex_start) {
96   const YGConfigRef config = YGConfigNew();
97
98   const YGNodeRef root = YGNodeNewWithConfig(config);
99   YGNodeStyleSetWidth(root, 100);
100   YGNodeStyleSetHeight(root, 100);
101
102   const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
103   YGNodeStyleSetAlignSelf(root_child0, YGAlignFlexStart);
104   YGNodeStyleSetWidth(root_child0, 10);
105   YGNodeStyleSetHeight(root_child0, 10);
106   YGNodeInsertChild(root, root_child0, 0);
107   YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
108
109   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
110   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
111   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
112   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
113
114   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
115   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
116   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
117   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
118
119   YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
120
121   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
122   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
123   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
124   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
125
126   ASSERT_FLOAT_EQ(90, YGNodeLayoutGetLeft(root_child0));
127   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
128   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
129   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
130
131   YGNodeFreeRecursive(root);
132
133   YGConfigFree(config);
134 }
135
136 TEST(YogaTest, align_self_flex_end_override_flex_start) {
137   const YGConfigRef config = YGConfigNew();
138
139   const YGNodeRef root = YGNodeNewWithConfig(config);
140   YGNodeStyleSetAlignItems(root, YGAlignFlexStart);
141   YGNodeStyleSetWidth(root, 100);
142   YGNodeStyleSetHeight(root, 100);
143
144   const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
145   YGNodeStyleSetAlignSelf(root_child0, YGAlignFlexEnd);
146   YGNodeStyleSetWidth(root_child0, 10);
147   YGNodeStyleSetHeight(root_child0, 10);
148   YGNodeInsertChild(root, root_child0, 0);
149   YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
150
151   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
152   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
153   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
154   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
155
156   ASSERT_FLOAT_EQ(90, YGNodeLayoutGetLeft(root_child0));
157   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
158   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
159   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
160
161   YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
162
163   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
164   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
165   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
166   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
167
168   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
169   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
170   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
171   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
172
173   YGNodeFreeRecursive(root);
174
175   YGConfigFree(config);
176 }
177
178 TEST(YogaTest, align_self_baseline) {
179   const YGConfigRef config = YGConfigNew();
180
181   const YGNodeRef root = YGNodeNewWithConfig(config);
182   YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow);
183   YGNodeStyleSetWidth(root, 100);
184   YGNodeStyleSetHeight(root, 100);
185
186   const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
187   YGNodeStyleSetAlignSelf(root_child0, YGAlignBaseline);
188   YGNodeStyleSetWidth(root_child0, 50);
189   YGNodeStyleSetHeight(root_child0, 50);
190   YGNodeInsertChild(root, root_child0, 0);
191
192   const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
193   YGNodeStyleSetAlignSelf(root_child1, YGAlignBaseline);
194   YGNodeStyleSetWidth(root_child1, 50);
195   YGNodeStyleSetHeight(root_child1, 20);
196   YGNodeInsertChild(root, root_child1, 1);
197
198   const YGNodeRef root_child1_child0 = YGNodeNewWithConfig(config);
199   YGNodeStyleSetWidth(root_child1_child0, 50);
200   YGNodeStyleSetHeight(root_child1_child0, 10);
201   YGNodeInsertChild(root_child1, root_child1_child0, 0);
202   YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
203
204   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
205   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
206   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
207   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
208
209   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
210   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
211   ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
212   ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0));
213
214   ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1));
215   ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child1));
216   ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
217   ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child1));
218
219   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1_child0));
220   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1_child0));
221   ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1_child0));
222   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1_child0));
223
224   YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
225
226   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
227   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
228   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
229   ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
230
231   ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child0));
232   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
233   ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
234   ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0));
235
236   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1));
237   ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child1));
238   ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
239   ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child1));
240
241   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1_child0));
242   ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1_child0));
243   ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1_child0));
244   ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1_child0));
245
246   YGNodeFreeRecursive(root);
247
248   YGConfigFree(config);
249 }