/** * Copyright (c) 2014-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ // @Generated by gentest/gentest.rb from gentest/fixtures/YGJustifyContentTest.html #include #include TEST(YogaTest, justify_content_row_flex_start) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); YGNodeStyleSetWidth(root, 102); YGNodeStyleSetHeight(root, 102); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child0, 10); YGNodeInsertChild(root, root_child0, 0); const YGNodeRef root_child1 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child1, 10); YGNodeInsertChild(root, root_child1, 1); const YGNodeRef root_child2 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child2, 10); YGNodeInsertChild(root, root_child2, 2); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child2)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(92, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(82, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(72, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child2)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_row_flex_end) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); YGNodeStyleSetJustifyContent(root, YGJustifyFlexEnd); YGNodeStyleSetWidth(root, 102); YGNodeStyleSetHeight(root, 102); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child0, 10); YGNodeInsertChild(root, root_child0, 0); const YGNodeRef root_child1 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child1, 10); YGNodeInsertChild(root, root_child1, 1); const YGNodeRef root_child2 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child2, 10); YGNodeInsertChild(root, root_child2, 2); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(72, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(82, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(92, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child2)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child2)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_row_center) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); YGNodeStyleSetJustifyContent(root, YGJustifyCenter); YGNodeStyleSetWidth(root, 102); YGNodeStyleSetHeight(root, 102); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child0, 10); YGNodeInsertChild(root, root_child0, 0); const YGNodeRef root_child1 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child1, 10); YGNodeInsertChild(root, root_child1, 1); const YGNodeRef root_child2 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child2, 10); YGNodeInsertChild(root, root_child2, 2); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(36, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(56, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child2)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(56, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(36, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child2)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_row_space_between) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); YGNodeStyleSetJustifyContent(root, YGJustifySpaceBetween); YGNodeStyleSetWidth(root, 102); YGNodeStyleSetHeight(root, 102); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child0, 10); YGNodeInsertChild(root, root_child0, 0); const YGNodeRef root_child1 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child1, 10); YGNodeInsertChild(root, root_child1, 1); const YGNodeRef root_child2 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child2, 10); YGNodeInsertChild(root, root_child2, 2); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(92, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child2)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(92, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child2)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_row_space_around) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); YGNodeStyleSetJustifyContent(root, YGJustifySpaceAround); YGNodeStyleSetWidth(root, 102); YGNodeStyleSetHeight(root, 102); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child0, 10); YGNodeInsertChild(root, root_child0, 0); const YGNodeRef root_child1 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child1, 10); YGNodeInsertChild(root, root_child1, 1); const YGNodeRef root_child2 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child2, 10); YGNodeInsertChild(root, root_child2, 2); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(12, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child2)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(12, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root_child2)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_column_flex_start) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root, 102); YGNodeStyleSetHeight(root, 102); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child0, 10); YGNodeInsertChild(root, root_child0, 0); const YGNodeRef root_child1 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child1, 10); YGNodeInsertChild(root, root_child1, 1); const YGNodeRef root_child2 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child2, 10); YGNodeInsertChild(root, root_child2, 2); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_column_flex_end) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetJustifyContent(root, YGJustifyFlexEnd); YGNodeStyleSetWidth(root, 102); YGNodeStyleSetHeight(root, 102); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child0, 10); YGNodeInsertChild(root, root_child0, 0); const YGNodeRef root_child1 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child1, 10); YGNodeInsertChild(root, root_child1, 1); const YGNodeRef root_child2 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child2, 10); YGNodeInsertChild(root, root_child2, 2); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(72, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(82, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(92, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(72, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(82, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(92, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_column_center) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetJustifyContent(root, YGJustifyCenter); YGNodeStyleSetWidth(root, 102); YGNodeStyleSetHeight(root, 102); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child0, 10); YGNodeInsertChild(root, root_child0, 0); const YGNodeRef root_child1 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child1, 10); YGNodeInsertChild(root, root_child1, 1); const YGNodeRef root_child2 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child2, 10); YGNodeInsertChild(root, root_child2, 2); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(36, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(56, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(36, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(56, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_column_space_between) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetJustifyContent(root, YGJustifySpaceBetween); YGNodeStyleSetWidth(root, 102); YGNodeStyleSetHeight(root, 102); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child0, 10); YGNodeInsertChild(root, root_child0, 0); const YGNodeRef root_child1 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child1, 10); YGNodeInsertChild(root, root_child1, 1); const YGNodeRef root_child2 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child2, 10); YGNodeInsertChild(root, root_child2, 2); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(92, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(92, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_column_space_around) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetJustifyContent(root, YGJustifySpaceAround); YGNodeStyleSetWidth(root, 102); YGNodeStyleSetHeight(root, 102); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child0, 10); YGNodeInsertChild(root, root_child0, 0); const YGNodeRef root_child1 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child1, 10); YGNodeInsertChild(root, root_child1, 1); const YGNodeRef root_child2 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child2, 10); YGNodeInsertChild(root, root_child2, 2); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(12, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(12, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_row_min_width_and_margin) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); YGNodeStyleSetJustifyContent(root, YGJustifyCenter); YGNodeStyleSetMargin(root, YGEdgeLeft, 100); YGNodeStyleSetMinWidth(root, 50); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child0, 20); YGNodeStyleSetHeight(root_child0, 20); YGNodeInsertChild(root, root_child0, 0); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(15, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child0)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(15, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child0)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_row_max_width_and_margin) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); YGNodeStyleSetJustifyContent(root, YGJustifyCenter); YGNodeStyleSetMargin(root, YGEdgeLeft, 100); YGNodeStyleSetWidth(root, 100); YGNodeStyleSetMaxWidth(root, 80); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child0, 20); YGNodeStyleSetHeight(root_child0, 20); YGNodeInsertChild(root, root_child0, 0); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(80, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child0)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(80, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child0)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_column_min_height_and_margin) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetJustifyContent(root, YGJustifyCenter); YGNodeStyleSetMargin(root, YGEdgeTop, 100); YGNodeStyleSetMinHeight(root, 50); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child0, 20); YGNodeStyleSetHeight(root_child0, 20); YGNodeInsertChild(root, root_child0, 0); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(100, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(15, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child0)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(100, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(15, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child0)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_colunn_max_height_and_margin) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetJustifyContent(root, YGJustifyCenter); YGNodeStyleSetMargin(root, YGEdgeTop, 100); YGNodeStyleSetHeight(root, 100); YGNodeStyleSetMaxHeight(root, 80); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetWidth(root_child0, 20); YGNodeStyleSetHeight(root_child0, 20); YGNodeInsertChild(root, root_child0, 0); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(100, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(80, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(30, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child0)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(100, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(80, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(30, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child0)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_column_space_evenly) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetJustifyContent(root, YGJustifySpaceEvenly); YGNodeStyleSetWidth(root, 102); YGNodeStyleSetHeight(root, 102); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child0, 10); YGNodeInsertChild(root, root_child0, 0); const YGNodeRef root_child1 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child1, 10); YGNodeInsertChild(root, root_child1, 1); const YGNodeRef root_child2 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child2, 10); YGNodeInsertChild(root, root_child2, 2); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(18, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(74, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(18, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(46, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(74, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeFreeRecursive(root); YGConfigFree(config); } TEST(YogaTest, justify_content_row_space_evenly) { const YGConfigRef config = YGConfigNew(); const YGNodeRef root = YGNodeNewWithConfig(config); YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); YGNodeStyleSetJustifyContent(root, YGJustifySpaceEvenly); YGNodeStyleSetWidth(root, 102); YGNodeStyleSetHeight(root, 102); const YGNodeRef root_child0 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child0, 10); YGNodeInsertChild(root, root_child0, 0); const YGNodeRef root_child1 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child1, 10); YGNodeInsertChild(root, root_child1, 1); const YGNodeRef root_child2 = YGNodeNewWithConfig(config); YGNodeStyleSetHeight(root_child2, 10); YGNodeInsertChild(root, root_child2, 2); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(26, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(51, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(77, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(102, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(77, YGNodeLayoutGetLeft(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(51, YGNodeLayoutGetLeft(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); ASSERT_FLOAT_EQ(26, YGNodeLayoutGetLeft(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); YGNodeFreeRecursive(root); YGConfigFree(config); }