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/YGDimensionTest.html
10 #include <gtest/gtest.h>
11 #include <yoga/Yoga.h>
13 TEST(YogaTest, wrap_child) {
14 const YGConfigRef config = YGConfigNew();
16 const YGNodeRef root = YGNodeNewWithConfig(config);
18 const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
19 YGNodeStyleSetWidth(root_child0, 100);
20 YGNodeStyleSetHeight(root_child0, 100);
21 YGNodeInsertChild(root, root_child0, 0);
22 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
24 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
25 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
26 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
27 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
29 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
30 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
31 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child0));
32 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
34 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
36 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
37 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
38 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
39 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
41 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
42 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
43 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child0));
44 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
46 YGNodeFreeRecursive(root);
51 TEST(YogaTest, wrap_grandchild) {
52 const YGConfigRef config = YGConfigNew();
54 const YGNodeRef root = YGNodeNewWithConfig(config);
56 const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
57 YGNodeInsertChild(root, root_child0, 0);
59 const YGNodeRef root_child0_child0 = YGNodeNewWithConfig(config);
60 YGNodeStyleSetWidth(root_child0_child0, 100);
61 YGNodeStyleSetHeight(root_child0_child0, 100);
62 YGNodeInsertChild(root_child0, root_child0_child0, 0);
63 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
65 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
66 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
67 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
68 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
70 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
71 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
72 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child0));
73 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
75 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0));
76 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
77 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child0_child0));
78 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0));
80 YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
82 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
83 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
84 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
85 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
87 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
88 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
89 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child0));
90 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
92 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0));
93 ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
94 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root_child0_child0));
95 ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0));
97 YGNodeFreeRecursive(root);