diff --git a/csharp/tests/Facebook.Yoga/YGAlignContentTest.cs b/csharp/tests/Facebook.Yoga/YGAlignContentTest.cs index 0d173c1c..c73d6761 100644 --- a/csharp/tests/Facebook.Yoga/YGAlignContentTest.cs +++ b/csharp/tests/Facebook.Yoga/YGAlignContentTest.cs @@ -117,211 +117,14 @@ namespace Facebook.Yoga Assert.AreEqual(10f, root_child4.LayoutHeight); } - [Test] - public void Test_align_content_flex_start_without_height_on_children() - { - YogaNode root = new YogaNode(); - root.Wrap = YogaWrap.Wrap; - root.Width = 100; - root.Height = 100; - - YogaNode root_child0 = new YogaNode(); - root_child0.Width = 50; - root.Insert(0, root_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.Width = 50; - root_child1.Height = 10; - root.Insert(1, root_child1); - - YogaNode root_child2 = new YogaNode(); - root_child2.Width = 50; - root.Insert(2, root_child2); - - YogaNode root_child3 = new YogaNode(); - root_child3.Width = 50; - root_child3.Height = 10; - root.Insert(3, root_child3); - - YogaNode root_child4 = new YogaNode(); - root_child4.Width = 50; - root.Insert(4, root_child4); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(100f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(0f, root_child0.LayoutHeight); - - Assert.AreEqual(0f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(10f, root_child1.LayoutHeight); - - Assert.AreEqual(0f, root_child2.LayoutX); - Assert.AreEqual(10f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(0f, root_child2.LayoutHeight); - - Assert.AreEqual(0f, root_child3.LayoutX); - Assert.AreEqual(10f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(10f, root_child3.LayoutHeight); - - Assert.AreEqual(0f, root_child4.LayoutX); - Assert.AreEqual(20f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(0f, root_child4.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(100f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(50f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(0f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(10f, root_child1.LayoutHeight); - - Assert.AreEqual(50f, root_child2.LayoutX); - Assert.AreEqual(10f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(0f, root_child2.LayoutHeight); - - Assert.AreEqual(50f, root_child3.LayoutX); - Assert.AreEqual(10f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(10f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(20f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(0f, root_child4.LayoutHeight); - } - - [Test] - public void Test_align_content_flex_start_with_flex() - { - YogaNode root = new YogaNode(); - root.Wrap = YogaWrap.Wrap; - root.Width = 100; - root.Height = 120; - - YogaNode root_child0 = new YogaNode(); - root_child0.FlexGrow = 1; - root_child0.FlexBasis = 0.Percent(); - root_child0.Width = 50; - root.Insert(0, root_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.FlexGrow = 1; - root_child1.FlexBasis = 0.Percent(); - root_child1.Width = 50; - root_child1.Height = 10; - root.Insert(1, root_child1); - - YogaNode root_child2 = new YogaNode(); - root_child2.Width = 50; - root.Insert(2, root_child2); - - YogaNode root_child3 = new YogaNode(); - root_child3.FlexGrow = 1; - root_child3.FlexShrink = 1; - root_child3.FlexBasis = 0.Percent(); - root_child3.Width = 50; - root.Insert(3, root_child3); - - YogaNode root_child4 = new YogaNode(); - root_child4.Width = 50; - root.Insert(4, root_child4); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(100f, root.LayoutWidth); - Assert.AreEqual(120f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(40f, root_child0.LayoutHeight); - - Assert.AreEqual(0f, root_child1.LayoutX); - Assert.AreEqual(40f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(40f, root_child1.LayoutHeight); - - Assert.AreEqual(0f, root_child2.LayoutX); - Assert.AreEqual(80f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(0f, root_child2.LayoutHeight); - - Assert.AreEqual(0f, root_child3.LayoutX); - Assert.AreEqual(80f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(40f, root_child3.LayoutHeight); - - Assert.AreEqual(0f, root_child4.LayoutX); - Assert.AreEqual(120f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(0f, root_child4.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(100f, root.LayoutWidth); - Assert.AreEqual(120f, root.LayoutHeight); - - Assert.AreEqual(50f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(40f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(40f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(40f, root_child1.LayoutHeight); - - Assert.AreEqual(50f, root_child2.LayoutX); - Assert.AreEqual(80f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(0f, root_child2.LayoutHeight); - - Assert.AreEqual(50f, root_child3.LayoutX); - Assert.AreEqual(80f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(40f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(120f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(0f, root_child4.LayoutHeight); - } - [Test] public void Test_align_content_flex_end() { YogaNode root = new YogaNode(); + root.FlexDirection = YogaFlexDirection.Row; root.AlignContent = YogaAlign.FlexEnd; root.Wrap = YogaWrap.Wrap; - root.Width = 100; + root.Width = 130; root.Height = 100; YogaNode root_child0 = new YogaNode(); @@ -353,31 +156,31 @@ namespace Facebook.Yoga Assert.AreEqual(0f, root.LayoutX); Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(100f, root.LayoutWidth); + Assert.AreEqual(130f, root.LayoutWidth); Assert.AreEqual(100f, root.LayoutHeight); Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); + Assert.AreEqual(70f, root_child0.LayoutY); Assert.AreEqual(50f, root_child0.LayoutWidth); Assert.AreEqual(10f, root_child0.LayoutHeight); - Assert.AreEqual(0f, root_child1.LayoutX); - Assert.AreEqual(10f, root_child1.LayoutY); + Assert.AreEqual(50f, root_child1.LayoutX); + Assert.AreEqual(70f, root_child1.LayoutY); Assert.AreEqual(50f, root_child1.LayoutWidth); Assert.AreEqual(10f, root_child1.LayoutHeight); Assert.AreEqual(0f, root_child2.LayoutX); - Assert.AreEqual(20f, root_child2.LayoutY); + Assert.AreEqual(80f, root_child2.LayoutY); Assert.AreEqual(50f, root_child2.LayoutWidth); Assert.AreEqual(10f, root_child2.LayoutHeight); - Assert.AreEqual(0f, root_child3.LayoutX); - Assert.AreEqual(30f, root_child3.LayoutY); + Assert.AreEqual(50f, root_child3.LayoutX); + Assert.AreEqual(80f, root_child3.LayoutY); Assert.AreEqual(50f, root_child3.LayoutWidth); Assert.AreEqual(10f, root_child3.LayoutHeight); Assert.AreEqual(0f, root_child4.LayoutX); - Assert.AreEqual(40f, root_child4.LayoutY); + Assert.AreEqual(90f, root_child4.LayoutY); Assert.AreEqual(50f, root_child4.LayoutWidth); Assert.AreEqual(10f, root_child4.LayoutHeight); @@ -386,31 +189,132 @@ namespace Facebook.Yoga Assert.AreEqual(0f, root.LayoutX); Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(100f, root.LayoutWidth); + Assert.AreEqual(130f, root.LayoutWidth); Assert.AreEqual(100f, root.LayoutHeight); - Assert.AreEqual(50f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); + Assert.AreEqual(80f, root_child0.LayoutX); + Assert.AreEqual(70f, root_child0.LayoutY); + Assert.AreEqual(50f, root_child0.LayoutWidth); + Assert.AreEqual(10f, root_child0.LayoutHeight); + + Assert.AreEqual(30f, root_child1.LayoutX); + Assert.AreEqual(70f, root_child1.LayoutY); + Assert.AreEqual(50f, root_child1.LayoutWidth); + Assert.AreEqual(10f, root_child1.LayoutHeight); + + Assert.AreEqual(80f, root_child2.LayoutX); + Assert.AreEqual(80f, root_child2.LayoutY); + Assert.AreEqual(50f, root_child2.LayoutWidth); + Assert.AreEqual(10f, root_child2.LayoutHeight); + + Assert.AreEqual(30f, root_child3.LayoutX); + Assert.AreEqual(80f, root_child3.LayoutY); + Assert.AreEqual(50f, root_child3.LayoutWidth); + Assert.AreEqual(10f, root_child3.LayoutHeight); + + Assert.AreEqual(80f, root_child4.LayoutX); + Assert.AreEqual(90f, root_child4.LayoutY); + Assert.AreEqual(50f, root_child4.LayoutWidth); + Assert.AreEqual(10f, root_child4.LayoutHeight); + } + + [Test] + public void Test_align_content_center() + { + YogaNode root = new YogaNode(); + root.FlexDirection = YogaFlexDirection.Row; + root.AlignContent = YogaAlign.Center; + root.Wrap = YogaWrap.Wrap; + root.Width = 130; + root.Height = 100; + + YogaNode root_child0 = new YogaNode(); + root_child0.Width = 50; + root_child0.Height = 10; + root.Insert(0, root_child0); + + YogaNode root_child1 = new YogaNode(); + root_child1.Width = 50; + root_child1.Height = 10; + root.Insert(1, root_child1); + + YogaNode root_child2 = new YogaNode(); + root_child2.Width = 50; + root_child2.Height = 10; + root.Insert(2, root_child2); + + YogaNode root_child3 = new YogaNode(); + root_child3.Width = 50; + root_child3.Height = 10; + root.Insert(3, root_child3); + + YogaNode root_child4 = new YogaNode(); + root_child4.Width = 50; + root_child4.Height = 10; + root.Insert(4, root_child4); + root.StyleDirection = YogaDirection.LTR; + root.CalculateLayout(); + + Assert.AreEqual(0f, root.LayoutX); + Assert.AreEqual(0f, root.LayoutY); + Assert.AreEqual(130f, root.LayoutWidth); + Assert.AreEqual(100f, root.LayoutHeight); + + Assert.AreEqual(0f, root_child0.LayoutX); + Assert.AreEqual(35f, root_child0.LayoutY); Assert.AreEqual(50f, root_child0.LayoutWidth); Assert.AreEqual(10f, root_child0.LayoutHeight); Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(10f, root_child1.LayoutY); + Assert.AreEqual(35f, root_child1.LayoutY); Assert.AreEqual(50f, root_child1.LayoutWidth); Assert.AreEqual(10f, root_child1.LayoutHeight); - Assert.AreEqual(50f, root_child2.LayoutX); - Assert.AreEqual(20f, root_child2.LayoutY); + Assert.AreEqual(0f, root_child2.LayoutX); + Assert.AreEqual(45f, root_child2.LayoutY); Assert.AreEqual(50f, root_child2.LayoutWidth); Assert.AreEqual(10f, root_child2.LayoutHeight); Assert.AreEqual(50f, root_child3.LayoutX); - Assert.AreEqual(30f, root_child3.LayoutY); + Assert.AreEqual(45f, root_child3.LayoutY); Assert.AreEqual(50f, root_child3.LayoutWidth); Assert.AreEqual(10f, root_child3.LayoutHeight); - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(40f, root_child4.LayoutY); + Assert.AreEqual(0f, root_child4.LayoutX); + Assert.AreEqual(55f, root_child4.LayoutY); + Assert.AreEqual(50f, root_child4.LayoutWidth); + Assert.AreEqual(10f, root_child4.LayoutHeight); + + root.StyleDirection = YogaDirection.RTL; + root.CalculateLayout(); + + Assert.AreEqual(0f, root.LayoutX); + Assert.AreEqual(0f, root.LayoutY); + Assert.AreEqual(130f, root.LayoutWidth); + Assert.AreEqual(100f, root.LayoutHeight); + + Assert.AreEqual(80f, root_child0.LayoutX); + Assert.AreEqual(35f, root_child0.LayoutY); + Assert.AreEqual(50f, root_child0.LayoutWidth); + Assert.AreEqual(10f, root_child0.LayoutHeight); + + Assert.AreEqual(30f, root_child1.LayoutX); + Assert.AreEqual(35f, root_child1.LayoutY); + Assert.AreEqual(50f, root_child1.LayoutWidth); + Assert.AreEqual(10f, root_child1.LayoutHeight); + + Assert.AreEqual(80f, root_child2.LayoutX); + Assert.AreEqual(45f, root_child2.LayoutY); + Assert.AreEqual(50f, root_child2.LayoutWidth); + Assert.AreEqual(10f, root_child2.LayoutHeight); + + Assert.AreEqual(30f, root_child3.LayoutX); + Assert.AreEqual(45f, root_child3.LayoutY); + Assert.AreEqual(50f, root_child3.LayoutWidth); + Assert.AreEqual(10f, root_child3.LayoutHeight); + + Assert.AreEqual(80f, root_child4.LayoutX); + Assert.AreEqual(55f, root_child4.LayoutY); Assert.AreEqual(50f, root_child4.LayoutWidth); Assert.AreEqual(10f, root_child4.LayoutHeight); } @@ -712,1083 +616,5 @@ namespace Facebook.Yoga Assert.AreEqual(10f, root_child4.LayoutHeight); } - [Test] - public void Test_align_content_stretch_row() - { - YogaNode root = new YogaNode(); - root.FlexDirection = YogaFlexDirection.Row; - root.AlignContent = YogaAlign.Stretch; - root.Wrap = YogaWrap.Wrap; - root.Width = 150; - root.Height = 100; - - YogaNode root_child0 = new YogaNode(); - root_child0.Width = 50; - root.Insert(0, root_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.Width = 50; - root.Insert(1, root_child1); - - YogaNode root_child2 = new YogaNode(); - root_child2.Width = 50; - root.Insert(2, root_child2); - - YogaNode root_child3 = new YogaNode(); - root_child3.Width = 50; - root.Insert(3, root_child3); - - YogaNode root_child4 = new YogaNode(); - root_child4.Width = 50; - root.Insert(4, root_child4); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(50f, root_child1.LayoutHeight); - - Assert.AreEqual(100f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(50f, root_child2.LayoutHeight); - - Assert.AreEqual(0f, root_child3.LayoutX); - Assert.AreEqual(50f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(50f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(50f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(50f, root_child4.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(100f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(50f, root_child1.LayoutHeight); - - Assert.AreEqual(0f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(50f, root_child2.LayoutHeight); - - Assert.AreEqual(100f, root_child3.LayoutX); - Assert.AreEqual(50f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(50f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(50f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(50f, root_child4.LayoutHeight); - } - - [Test] - public void Test_align_content_stretch_row_with_children() - { - YogaNode root = new YogaNode(); - root.FlexDirection = YogaFlexDirection.Row; - root.AlignContent = YogaAlign.Stretch; - root.Wrap = YogaWrap.Wrap; - root.Width = 150; - root.Height = 100; - - YogaNode root_child0 = new YogaNode(); - root_child0.Width = 50; - root.Insert(0, root_child0); - - YogaNode root_child0_child0 = new YogaNode(); - root_child0_child0.FlexGrow = 1; - root_child0_child0.FlexShrink = 1; - root_child0_child0.FlexBasis = 0.Percent(); - root_child0.Insert(0, root_child0_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.Width = 50; - root.Insert(1, root_child1); - - YogaNode root_child2 = new YogaNode(); - root_child2.Width = 50; - root.Insert(2, root_child2); - - YogaNode root_child3 = new YogaNode(); - root_child3.Width = 50; - root.Insert(3, root_child3); - - YogaNode root_child4 = new YogaNode(); - root_child4.Width = 50; - root.Insert(4, root_child4); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0.LayoutHeight); - - Assert.AreEqual(0f, root_child0_child0.LayoutX); - Assert.AreEqual(0f, root_child0_child0.LayoutY); - Assert.AreEqual(50f, root_child0_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(50f, root_child1.LayoutHeight); - - Assert.AreEqual(100f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(50f, root_child2.LayoutHeight); - - Assert.AreEqual(0f, root_child3.LayoutX); - Assert.AreEqual(50f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(50f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(50f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(50f, root_child4.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(100f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0.LayoutHeight); - - Assert.AreEqual(0f, root_child0_child0.LayoutX); - Assert.AreEqual(0f, root_child0_child0.LayoutY); - Assert.AreEqual(50f, root_child0_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(50f, root_child1.LayoutHeight); - - Assert.AreEqual(0f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(50f, root_child2.LayoutHeight); - - Assert.AreEqual(100f, root_child3.LayoutX); - Assert.AreEqual(50f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(50f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(50f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(50f, root_child4.LayoutHeight); - } - - [Test] - public void Test_align_content_stretch_row_with_flex() - { - YogaNode root = new YogaNode(); - root.FlexDirection = YogaFlexDirection.Row; - root.AlignContent = YogaAlign.Stretch; - root.Wrap = YogaWrap.Wrap; - root.Width = 150; - root.Height = 100; - - YogaNode root_child0 = new YogaNode(); - root_child0.Width = 50; - root.Insert(0, root_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.FlexGrow = 1; - root_child1.FlexShrink = 1; - root_child1.FlexBasis = 0.Percent(); - root_child1.Width = 50; - root.Insert(1, root_child1); - - YogaNode root_child2 = new YogaNode(); - root_child2.Width = 50; - root.Insert(2, root_child2); - - YogaNode root_child3 = new YogaNode(); - root_child3.FlexGrow = 1; - root_child3.FlexShrink = 1; - root_child3.FlexBasis = 0.Percent(); - root_child3.Width = 50; - root.Insert(3, root_child3); - - YogaNode root_child4 = new YogaNode(); - root_child4.Width = 50; - root.Insert(4, root_child4); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(100f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(0f, root_child1.LayoutWidth); - Assert.AreEqual(100f, root_child1.LayoutHeight); - - Assert.AreEqual(50f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(100f, root_child2.LayoutHeight); - - Assert.AreEqual(100f, root_child3.LayoutX); - Assert.AreEqual(0f, root_child3.LayoutY); - Assert.AreEqual(0f, root_child3.LayoutWidth); - Assert.AreEqual(100f, root_child3.LayoutHeight); - - Assert.AreEqual(100f, root_child4.LayoutX); - Assert.AreEqual(0f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(100f, root_child4.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(100f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(100f, root_child0.LayoutHeight); - - Assert.AreEqual(100f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(0f, root_child1.LayoutWidth); - Assert.AreEqual(100f, root_child1.LayoutHeight); - - Assert.AreEqual(50f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(100f, root_child2.LayoutHeight); - - Assert.AreEqual(50f, root_child3.LayoutX); - Assert.AreEqual(0f, root_child3.LayoutY); - Assert.AreEqual(0f, root_child3.LayoutWidth); - Assert.AreEqual(100f, root_child3.LayoutHeight); - - Assert.AreEqual(0f, root_child4.LayoutX); - Assert.AreEqual(0f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(100f, root_child4.LayoutHeight); - } - - [Test] - public void Test_align_content_stretch_row_with_flex_no_shrink() - { - YogaNode root = new YogaNode(); - root.FlexDirection = YogaFlexDirection.Row; - root.AlignContent = YogaAlign.Stretch; - root.Wrap = YogaWrap.Wrap; - root.Width = 150; - root.Height = 100; - - YogaNode root_child0 = new YogaNode(); - root_child0.Width = 50; - root.Insert(0, root_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.FlexGrow = 1; - root_child1.FlexShrink = 1; - root_child1.FlexBasis = 0.Percent(); - root_child1.Width = 50; - root.Insert(1, root_child1); - - YogaNode root_child2 = new YogaNode(); - root_child2.Width = 50; - root.Insert(2, root_child2); - - YogaNode root_child3 = new YogaNode(); - root_child3.FlexGrow = 1; - root_child3.FlexBasis = 0.Percent(); - root_child3.Width = 50; - root.Insert(3, root_child3); - - YogaNode root_child4 = new YogaNode(); - root_child4.Width = 50; - root.Insert(4, root_child4); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(100f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(0f, root_child1.LayoutWidth); - Assert.AreEqual(100f, root_child1.LayoutHeight); - - Assert.AreEqual(50f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(100f, root_child2.LayoutHeight); - - Assert.AreEqual(100f, root_child3.LayoutX); - Assert.AreEqual(0f, root_child3.LayoutY); - Assert.AreEqual(0f, root_child3.LayoutWidth); - Assert.AreEqual(100f, root_child3.LayoutHeight); - - Assert.AreEqual(100f, root_child4.LayoutX); - Assert.AreEqual(0f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(100f, root_child4.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(100f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(100f, root_child0.LayoutHeight); - - Assert.AreEqual(100f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(0f, root_child1.LayoutWidth); - Assert.AreEqual(100f, root_child1.LayoutHeight); - - Assert.AreEqual(50f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(100f, root_child2.LayoutHeight); - - Assert.AreEqual(50f, root_child3.LayoutX); - Assert.AreEqual(0f, root_child3.LayoutY); - Assert.AreEqual(0f, root_child3.LayoutWidth); - Assert.AreEqual(100f, root_child3.LayoutHeight); - - Assert.AreEqual(0f, root_child4.LayoutX); - Assert.AreEqual(0f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(100f, root_child4.LayoutHeight); - } - - [Test] - public void Test_align_content_stretch_row_with_margin() - { - YogaNode root = new YogaNode(); - root.FlexDirection = YogaFlexDirection.Row; - root.AlignContent = YogaAlign.Stretch; - root.Wrap = YogaWrap.Wrap; - root.Width = 150; - root.Height = 100; - - YogaNode root_child0 = new YogaNode(); - root_child0.Width = 50; - root.Insert(0, root_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.MarginLeft = 10; - root_child1.MarginTop = 10; - root_child1.MarginRight = 10; - root_child1.MarginBottom = 10; - root_child1.Width = 50; - root.Insert(1, root_child1); - - YogaNode root_child2 = new YogaNode(); - root_child2.Width = 50; - root.Insert(2, root_child2); - - YogaNode root_child3 = new YogaNode(); - root_child3.MarginLeft = 10; - root_child3.MarginTop = 10; - root_child3.MarginRight = 10; - root_child3.MarginBottom = 10; - root_child3.Width = 50; - root.Insert(3, root_child3); - - YogaNode root_child4 = new YogaNode(); - root_child4.Width = 50; - root.Insert(4, root_child4); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(40f, root_child0.LayoutHeight); - - Assert.AreEqual(60f, root_child1.LayoutX); - Assert.AreEqual(10f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(20f, root_child1.LayoutHeight); - - Assert.AreEqual(0f, root_child2.LayoutX); - Assert.AreEqual(40f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(40f, root_child2.LayoutHeight); - - Assert.AreEqual(60f, root_child3.LayoutX); - Assert.AreEqual(50f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(20f, root_child3.LayoutHeight); - - Assert.AreEqual(0f, root_child4.LayoutX); - Assert.AreEqual(80f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(20f, root_child4.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(100f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(40f, root_child0.LayoutHeight); - - Assert.AreEqual(40f, root_child1.LayoutX); - Assert.AreEqual(10f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(20f, root_child1.LayoutHeight); - - Assert.AreEqual(100f, root_child2.LayoutX); - Assert.AreEqual(40f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(40f, root_child2.LayoutHeight); - - Assert.AreEqual(40f, root_child3.LayoutX); - Assert.AreEqual(50f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(20f, root_child3.LayoutHeight); - - Assert.AreEqual(100f, root_child4.LayoutX); - Assert.AreEqual(80f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(20f, root_child4.LayoutHeight); - } - - [Test] - public void Test_align_content_stretch_row_with_padding() - { - YogaNode root = new YogaNode(); - root.FlexDirection = YogaFlexDirection.Row; - root.AlignContent = YogaAlign.Stretch; - root.Wrap = YogaWrap.Wrap; - root.Width = 150; - root.Height = 100; - - YogaNode root_child0 = new YogaNode(); - root_child0.Width = 50; - root.Insert(0, root_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.PaddingLeft = 10; - root_child1.PaddingTop = 10; - root_child1.PaddingRight = 10; - root_child1.PaddingBottom = 10; - root_child1.Width = 50; - root.Insert(1, root_child1); - - YogaNode root_child2 = new YogaNode(); - root_child2.Width = 50; - root.Insert(2, root_child2); - - YogaNode root_child3 = new YogaNode(); - root_child3.PaddingLeft = 10; - root_child3.PaddingTop = 10; - root_child3.PaddingRight = 10; - root_child3.PaddingBottom = 10; - root_child3.Width = 50; - root.Insert(3, root_child3); - - YogaNode root_child4 = new YogaNode(); - root_child4.Width = 50; - root.Insert(4, root_child4); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(50f, root_child1.LayoutHeight); - - Assert.AreEqual(100f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(50f, root_child2.LayoutHeight); - - Assert.AreEqual(0f, root_child3.LayoutX); - Assert.AreEqual(50f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(50f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(50f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(50f, root_child4.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(100f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(50f, root_child1.LayoutHeight); - - Assert.AreEqual(0f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(50f, root_child2.LayoutHeight); - - Assert.AreEqual(100f, root_child3.LayoutX); - Assert.AreEqual(50f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(50f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(50f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(50f, root_child4.LayoutHeight); - } - - [Test] - public void Test_align_content_stretch_row_with_single_row() - { - YogaNode root = new YogaNode(); - root.FlexDirection = YogaFlexDirection.Row; - root.AlignContent = YogaAlign.Stretch; - root.Wrap = YogaWrap.Wrap; - root.Width = 150; - root.Height = 100; - - YogaNode root_child0 = new YogaNode(); - root_child0.Width = 50; - root.Insert(0, root_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.Width = 50; - root.Insert(1, root_child1); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(100f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(100f, root_child1.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(100f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(100f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(100f, root_child1.LayoutHeight); - } - - [Test] - public void Test_align_content_stretch_row_with_fixed_height() - { - YogaNode root = new YogaNode(); - root.FlexDirection = YogaFlexDirection.Row; - root.AlignContent = YogaAlign.Stretch; - root.Wrap = YogaWrap.Wrap; - root.Width = 150; - root.Height = 100; - - YogaNode root_child0 = new YogaNode(); - root_child0.Width = 50; - root.Insert(0, root_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.Width = 50; - root_child1.Height = 60; - root.Insert(1, root_child1); - - YogaNode root_child2 = new YogaNode(); - root_child2.Width = 50; - root.Insert(2, root_child2); - - YogaNode root_child3 = new YogaNode(); - root_child3.Width = 50; - root.Insert(3, root_child3); - - YogaNode root_child4 = new YogaNode(); - root_child4.Width = 50; - root.Insert(4, root_child4); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(80f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(60f, root_child1.LayoutHeight); - - Assert.AreEqual(100f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(80f, root_child2.LayoutHeight); - - Assert.AreEqual(0f, root_child3.LayoutX); - Assert.AreEqual(80f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(20f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(80f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(20f, root_child4.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(100f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(80f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(60f, root_child1.LayoutHeight); - - Assert.AreEqual(0f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(80f, root_child2.LayoutHeight); - - Assert.AreEqual(100f, root_child3.LayoutX); - Assert.AreEqual(80f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(20f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(80f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(20f, root_child4.LayoutHeight); - } - - [Test] - public void Test_align_content_stretch_row_with_max_height() - { - YogaNode root = new YogaNode(); - root.FlexDirection = YogaFlexDirection.Row; - root.AlignContent = YogaAlign.Stretch; - root.Wrap = YogaWrap.Wrap; - root.Width = 150; - root.Height = 100; - - YogaNode root_child0 = new YogaNode(); - root_child0.Width = 50; - root.Insert(0, root_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.Width = 50; - root_child1.MaxHeight = 20; - root.Insert(1, root_child1); - - YogaNode root_child2 = new YogaNode(); - root_child2.Width = 50; - root.Insert(2, root_child2); - - YogaNode root_child3 = new YogaNode(); - root_child3.Width = 50; - root.Insert(3, root_child3); - - YogaNode root_child4 = new YogaNode(); - root_child4.Width = 50; - root.Insert(4, root_child4); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(20f, root_child1.LayoutHeight); - - Assert.AreEqual(100f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(50f, root_child2.LayoutHeight); - - Assert.AreEqual(0f, root_child3.LayoutX); - Assert.AreEqual(50f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(50f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(50f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(50f, root_child4.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(100f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(20f, root_child1.LayoutHeight); - - Assert.AreEqual(0f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(50f, root_child2.LayoutHeight); - - Assert.AreEqual(100f, root_child3.LayoutX); - Assert.AreEqual(50f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(50f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(50f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(50f, root_child4.LayoutHeight); - } - - [Test] - public void Test_align_content_stretch_row_with_min_height() - { - YogaNode root = new YogaNode(); - root.FlexDirection = YogaFlexDirection.Row; - root.AlignContent = YogaAlign.Stretch; - root.Wrap = YogaWrap.Wrap; - root.Width = 150; - root.Height = 100; - - YogaNode root_child0 = new YogaNode(); - root_child0.Width = 50; - root.Insert(0, root_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.Width = 50; - root_child1.MinHeight = 80; - root.Insert(1, root_child1); - - YogaNode root_child2 = new YogaNode(); - root_child2.Width = 50; - root.Insert(2, root_child2); - - YogaNode root_child3 = new YogaNode(); - root_child3.Width = 50; - root.Insert(3, root_child3); - - YogaNode root_child4 = new YogaNode(); - root_child4.Width = 50; - root.Insert(4, root_child4); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(90f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(90f, root_child1.LayoutHeight); - - Assert.AreEqual(100f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(90f, root_child2.LayoutHeight); - - Assert.AreEqual(0f, root_child3.LayoutX); - Assert.AreEqual(90f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(10f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(90f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(10f, root_child4.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(150f, root.LayoutWidth); - Assert.AreEqual(100f, root.LayoutHeight); - - Assert.AreEqual(100f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(90f, root_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(0f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(90f, root_child1.LayoutHeight); - - Assert.AreEqual(0f, root_child2.LayoutX); - Assert.AreEqual(0f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(90f, root_child2.LayoutHeight); - - Assert.AreEqual(100f, root_child3.LayoutX); - Assert.AreEqual(90f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(10f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(90f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(10f, root_child4.LayoutHeight); - } - - [Test] - public void Test_align_content_stretch_column() - { - YogaNode root = new YogaNode(); - root.AlignContent = YogaAlign.Stretch; - root.Wrap = YogaWrap.Wrap; - root.Width = 100; - root.Height = 150; - - YogaNode root_child0 = new YogaNode(); - root_child0.Height = 50; - root.Insert(0, root_child0); - - YogaNode root_child0_child0 = new YogaNode(); - root_child0_child0.FlexGrow = 1; - root_child0_child0.FlexShrink = 1; - root_child0_child0.FlexBasis = 0.Percent(); - root_child0.Insert(0, root_child0_child0); - - YogaNode root_child1 = new YogaNode(); - root_child1.FlexGrow = 1; - root_child1.FlexShrink = 1; - root_child1.FlexBasis = 0.Percent(); - root_child1.Height = 50; - root.Insert(1, root_child1); - - YogaNode root_child2 = new YogaNode(); - root_child2.Height = 50; - root.Insert(2, root_child2); - - YogaNode root_child3 = new YogaNode(); - root_child3.Height = 50; - root.Insert(3, root_child3); - - YogaNode root_child4 = new YogaNode(); - root_child4.Height = 50; - root.Insert(4, root_child4); - root.StyleDirection = YogaDirection.LTR; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(100f, root.LayoutWidth); - Assert.AreEqual(150f, root.LayoutHeight); - - Assert.AreEqual(0f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0.LayoutHeight); - - Assert.AreEqual(0f, root_child0_child0.LayoutX); - Assert.AreEqual(0f, root_child0_child0.LayoutY); - Assert.AreEqual(50f, root_child0_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0_child0.LayoutHeight); - - Assert.AreEqual(0f, root_child1.LayoutX); - Assert.AreEqual(50f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(0f, root_child1.LayoutHeight); - - Assert.AreEqual(0f, root_child2.LayoutX); - Assert.AreEqual(50f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(50f, root_child2.LayoutHeight); - - Assert.AreEqual(0f, root_child3.LayoutX); - Assert.AreEqual(100f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(50f, root_child3.LayoutHeight); - - Assert.AreEqual(50f, root_child4.LayoutX); - Assert.AreEqual(0f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(50f, root_child4.LayoutHeight); - - root.StyleDirection = YogaDirection.RTL; - root.CalculateLayout(); - - Assert.AreEqual(0f, root.LayoutX); - Assert.AreEqual(0f, root.LayoutY); - Assert.AreEqual(100f, root.LayoutWidth); - Assert.AreEqual(150f, root.LayoutHeight); - - Assert.AreEqual(50f, root_child0.LayoutX); - Assert.AreEqual(0f, root_child0.LayoutY); - Assert.AreEqual(50f, root_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0.LayoutHeight); - - Assert.AreEqual(0f, root_child0_child0.LayoutX); - Assert.AreEqual(0f, root_child0_child0.LayoutY); - Assert.AreEqual(50f, root_child0_child0.LayoutWidth); - Assert.AreEqual(50f, root_child0_child0.LayoutHeight); - - Assert.AreEqual(50f, root_child1.LayoutX); - Assert.AreEqual(50f, root_child1.LayoutY); - Assert.AreEqual(50f, root_child1.LayoutWidth); - Assert.AreEqual(0f, root_child1.LayoutHeight); - - Assert.AreEqual(50f, root_child2.LayoutX); - Assert.AreEqual(50f, root_child2.LayoutY); - Assert.AreEqual(50f, root_child2.LayoutWidth); - Assert.AreEqual(50f, root_child2.LayoutHeight); - - Assert.AreEqual(50f, root_child3.LayoutX); - Assert.AreEqual(100f, root_child3.LayoutY); - Assert.AreEqual(50f, root_child3.LayoutWidth); - Assert.AreEqual(50f, root_child3.LayoutHeight); - - Assert.AreEqual(0f, root_child4.LayoutX); - Assert.AreEqual(0f, root_child4.LayoutY); - Assert.AreEqual(50f, root_child4.LayoutWidth); - Assert.AreEqual(50f, root_child4.LayoutHeight); - } - } } diff --git a/gentest/fixtures/YGAlignContentTest.html b/gentest/fixtures/YGAlignContentTest.html index de7938fb..b1f23050 100644 --- a/gentest/fixtures/YGAlignContentTest.html +++ b/gentest/fixtures/YGAlignContentTest.html @@ -6,23 +6,15 @@
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
- -
+
@@ -53,92 +45,3 @@
- -
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
-
- -
-
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
diff --git a/java/tests/com/facebook/yoga/YGAlignContentTest.java b/java/tests/com/facebook/yoga/YGAlignContentTest.java index 122f26cc..de9daa1b 100644 --- a/java/tests/com/facebook/yoga/YGAlignContentTest.java +++ b/java/tests/com/facebook/yoga/YGAlignContentTest.java @@ -115,208 +115,13 @@ public class YGAlignContentTest { assertEquals(10f, root_child4.getLayoutHeight(), 0.0f); } - @Test - public void test_align_content_flex_start_without_height_on_children() { - final YogaNode root = new YogaNode(); - root.setWrap(YogaWrap.WRAP); - root.setWidth(100f); - root.setHeight(100f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setWidth(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setWidth(50f); - root_child1.setHeight(10f); - root.addChildAt(root_child1, 1); - - final YogaNode root_child2 = new YogaNode(); - root_child2.setWidth(50f); - root.addChildAt(root_child2, 2); - - final YogaNode root_child3 = new YogaNode(); - root_child3.setWidth(50f); - root_child3.setHeight(10f); - root.addChildAt(root_child3, 3); - - final YogaNode root_child4 = new YogaNode(); - root_child4.setWidth(50f); - root.addChildAt(root_child4, 4); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(100f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(0f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(10f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child2.getLayoutX(), 0.0f); - assertEquals(10f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(0f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child3.getLayoutX(), 0.0f); - assertEquals(10f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(10f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child4.getLayoutX(), 0.0f); - assertEquals(20f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(0f, root_child4.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(100f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(0f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(10f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child2.getLayoutX(), 0.0f); - assertEquals(10f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(0f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child3.getLayoutX(), 0.0f); - assertEquals(10f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(10f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(20f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(0f, root_child4.getLayoutHeight(), 0.0f); - } - - @Test - public void test_align_content_flex_start_with_flex() { - final YogaNode root = new YogaNode(); - root.setWrap(YogaWrap.WRAP); - root.setWidth(100f); - root.setHeight(120f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setFlexGrow(1f); - root_child0.setFlexBasisPercent(0f); - root_child0.setWidth(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setFlexGrow(1f); - root_child1.setFlexBasisPercent(0f); - root_child1.setWidth(50f); - root_child1.setHeight(10f); - root.addChildAt(root_child1, 1); - - final YogaNode root_child2 = new YogaNode(); - root_child2.setWidth(50f); - root.addChildAt(root_child2, 2); - - final YogaNode root_child3 = new YogaNode(); - root_child3.setFlexGrow(1f); - root_child3.setFlexShrink(1f); - root_child3.setFlexBasisPercent(0f); - root_child3.setWidth(50f); - root.addChildAt(root_child3, 3); - - final YogaNode root_child4 = new YogaNode(); - root_child4.setWidth(50f); - root.addChildAt(root_child4, 4); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(100f, root.getLayoutWidth(), 0.0f); - assertEquals(120f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(40f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child1.getLayoutX(), 0.0f); - assertEquals(40f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(40f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child2.getLayoutX(), 0.0f); - assertEquals(80f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(0f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child3.getLayoutX(), 0.0f); - assertEquals(80f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(40f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child4.getLayoutX(), 0.0f); - assertEquals(120f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(0f, root_child4.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(100f, root.getLayoutWidth(), 0.0f); - assertEquals(120f, root.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(40f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(40f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(40f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child2.getLayoutX(), 0.0f); - assertEquals(80f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(0f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child3.getLayoutX(), 0.0f); - assertEquals(80f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(40f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(120f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(0f, root_child4.getLayoutHeight(), 0.0f); - } - @Test public void test_align_content_flex_end() { final YogaNode root = new YogaNode(); + root.setFlexDirection(YogaFlexDirection.ROW); root.setAlignContent(YogaAlign.FLEX_END); root.setWrap(YogaWrap.WRAP); - root.setWidth(100f); + root.setWidth(130f); root.setHeight(100f); final YogaNode root_child0 = new YogaNode(); @@ -348,31 +153,31 @@ public class YGAlignContentTest { assertEquals(0f, root.getLayoutX(), 0.0f); assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(100f, root.getLayoutWidth(), 0.0f); + assertEquals(130f, root.getLayoutWidth(), 0.0f); assertEquals(100f, root.getLayoutHeight(), 0.0f); assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); + assertEquals(70f, root_child0.getLayoutY(), 0.0f); assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); assertEquals(10f, root_child0.getLayoutHeight(), 0.0f); - assertEquals(0f, root_child1.getLayoutX(), 0.0f); - assertEquals(10f, root_child1.getLayoutY(), 0.0f); + assertEquals(50f, root_child1.getLayoutX(), 0.0f); + assertEquals(70f, root_child1.getLayoutY(), 0.0f); assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); assertEquals(10f, root_child1.getLayoutHeight(), 0.0f); assertEquals(0f, root_child2.getLayoutX(), 0.0f); - assertEquals(20f, root_child2.getLayoutY(), 0.0f); + assertEquals(80f, root_child2.getLayoutY(), 0.0f); assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); assertEquals(10f, root_child2.getLayoutHeight(), 0.0f); - assertEquals(0f, root_child3.getLayoutX(), 0.0f); - assertEquals(30f, root_child3.getLayoutY(), 0.0f); + assertEquals(50f, root_child3.getLayoutX(), 0.0f); + assertEquals(80f, root_child3.getLayoutY(), 0.0f); assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); assertEquals(10f, root_child3.getLayoutHeight(), 0.0f); assertEquals(0f, root_child4.getLayoutX(), 0.0f); - assertEquals(40f, root_child4.getLayoutY(), 0.0f); + assertEquals(90f, root_child4.getLayoutY(), 0.0f); assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); assertEquals(10f, root_child4.getLayoutHeight(), 0.0f); @@ -381,31 +186,131 @@ public class YGAlignContentTest { assertEquals(0f, root.getLayoutX(), 0.0f); assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(100f, root.getLayoutWidth(), 0.0f); + assertEquals(130f, root.getLayoutWidth(), 0.0f); assertEquals(100f, root.getLayoutHeight(), 0.0f); - assertEquals(50f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); + assertEquals(80f, root_child0.getLayoutX(), 0.0f); + assertEquals(70f, root_child0.getLayoutY(), 0.0f); + assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); + assertEquals(10f, root_child0.getLayoutHeight(), 0.0f); + + assertEquals(30f, root_child1.getLayoutX(), 0.0f); + assertEquals(70f, root_child1.getLayoutY(), 0.0f); + assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); + assertEquals(10f, root_child1.getLayoutHeight(), 0.0f); + + assertEquals(80f, root_child2.getLayoutX(), 0.0f); + assertEquals(80f, root_child2.getLayoutY(), 0.0f); + assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); + assertEquals(10f, root_child2.getLayoutHeight(), 0.0f); + + assertEquals(30f, root_child3.getLayoutX(), 0.0f); + assertEquals(80f, root_child3.getLayoutY(), 0.0f); + assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); + assertEquals(10f, root_child3.getLayoutHeight(), 0.0f); + + assertEquals(80f, root_child4.getLayoutX(), 0.0f); + assertEquals(90f, root_child4.getLayoutY(), 0.0f); + assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); + assertEquals(10f, root_child4.getLayoutHeight(), 0.0f); + } + + @Test + public void test_align_content_center() { + final YogaNode root = new YogaNode(); + root.setFlexDirection(YogaFlexDirection.ROW); + root.setAlignContent(YogaAlign.CENTER); + root.setWrap(YogaWrap.WRAP); + root.setWidth(130f); + root.setHeight(100f); + + final YogaNode root_child0 = new YogaNode(); + root_child0.setWidth(50f); + root_child0.setHeight(10f); + root.addChildAt(root_child0, 0); + + final YogaNode root_child1 = new YogaNode(); + root_child1.setWidth(50f); + root_child1.setHeight(10f); + root.addChildAt(root_child1, 1); + + final YogaNode root_child2 = new YogaNode(); + root_child2.setWidth(50f); + root_child2.setHeight(10f); + root.addChildAt(root_child2, 2); + + final YogaNode root_child3 = new YogaNode(); + root_child3.setWidth(50f); + root_child3.setHeight(10f); + root.addChildAt(root_child3, 3); + + final YogaNode root_child4 = new YogaNode(); + root_child4.setWidth(50f); + root_child4.setHeight(10f); + root.addChildAt(root_child4, 4); + root.setDirection(YogaDirection.LTR); + root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); + + assertEquals(0f, root.getLayoutX(), 0.0f); + assertEquals(0f, root.getLayoutY(), 0.0f); + assertEquals(130f, root.getLayoutWidth(), 0.0f); + assertEquals(100f, root.getLayoutHeight(), 0.0f); + + assertEquals(0f, root_child0.getLayoutX(), 0.0f); + assertEquals(35f, root_child0.getLayoutY(), 0.0f); assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); assertEquals(10f, root_child0.getLayoutHeight(), 0.0f); assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(10f, root_child1.getLayoutY(), 0.0f); + assertEquals(35f, root_child1.getLayoutY(), 0.0f); assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); assertEquals(10f, root_child1.getLayoutHeight(), 0.0f); - assertEquals(50f, root_child2.getLayoutX(), 0.0f); - assertEquals(20f, root_child2.getLayoutY(), 0.0f); + assertEquals(0f, root_child2.getLayoutX(), 0.0f); + assertEquals(45f, root_child2.getLayoutY(), 0.0f); assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); assertEquals(10f, root_child2.getLayoutHeight(), 0.0f); assertEquals(50f, root_child3.getLayoutX(), 0.0f); - assertEquals(30f, root_child3.getLayoutY(), 0.0f); + assertEquals(45f, root_child3.getLayoutY(), 0.0f); assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); assertEquals(10f, root_child3.getLayoutHeight(), 0.0f); - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(40f, root_child4.getLayoutY(), 0.0f); + assertEquals(0f, root_child4.getLayoutX(), 0.0f); + assertEquals(55f, root_child4.getLayoutY(), 0.0f); + assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); + assertEquals(10f, root_child4.getLayoutHeight(), 0.0f); + + root.setDirection(YogaDirection.RTL); + root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); + + assertEquals(0f, root.getLayoutX(), 0.0f); + assertEquals(0f, root.getLayoutY(), 0.0f); + assertEquals(130f, root.getLayoutWidth(), 0.0f); + assertEquals(100f, root.getLayoutHeight(), 0.0f); + + assertEquals(80f, root_child0.getLayoutX(), 0.0f); + assertEquals(35f, root_child0.getLayoutY(), 0.0f); + assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); + assertEquals(10f, root_child0.getLayoutHeight(), 0.0f); + + assertEquals(30f, root_child1.getLayoutX(), 0.0f); + assertEquals(35f, root_child1.getLayoutY(), 0.0f); + assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); + assertEquals(10f, root_child1.getLayoutHeight(), 0.0f); + + assertEquals(80f, root_child2.getLayoutX(), 0.0f); + assertEquals(45f, root_child2.getLayoutY(), 0.0f); + assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); + assertEquals(10f, root_child2.getLayoutHeight(), 0.0f); + + assertEquals(30f, root_child3.getLayoutX(), 0.0f); + assertEquals(45f, root_child3.getLayoutY(), 0.0f); + assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); + assertEquals(10f, root_child3.getLayoutHeight(), 0.0f); + + assertEquals(80f, root_child4.getLayoutX(), 0.0f); + assertEquals(55f, root_child4.getLayoutY(), 0.0f); assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); assertEquals(10f, root_child4.getLayoutHeight(), 0.0f); } @@ -704,1071 +609,4 @@ public class YGAlignContentTest { assertEquals(10f, root_child4.getLayoutHeight(), 0.0f); } - @Test - public void test_align_content_stretch_row() { - final YogaNode root = new YogaNode(); - root.setFlexDirection(YogaFlexDirection.ROW); - root.setAlignContent(YogaAlign.STRETCH); - root.setWrap(YogaWrap.WRAP); - root.setWidth(150f); - root.setHeight(100f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setWidth(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setWidth(50f); - root.addChildAt(root_child1, 1); - - final YogaNode root_child2 = new YogaNode(); - root_child2.setWidth(50f); - root.addChildAt(root_child2, 2); - - final YogaNode root_child3 = new YogaNode(); - root_child3.setWidth(50f); - root.addChildAt(root_child3, 3); - - final YogaNode root_child4 = new YogaNode(); - root_child4.setWidth(50f); - root.addChildAt(root_child4, 4); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child3.getLayoutX(), 0.0f); - assertEquals(50f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(50f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child4.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child3.getLayoutX(), 0.0f); - assertEquals(50f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(50f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child4.getLayoutHeight(), 0.0f); - } - - @Test - public void test_align_content_stretch_row_with_children() { - final YogaNode root = new YogaNode(); - root.setFlexDirection(YogaFlexDirection.ROW); - root.setAlignContent(YogaAlign.STRETCH); - root.setWrap(YogaWrap.WRAP); - root.setWidth(150f); - root.setHeight(100f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setWidth(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child0_child0 = new YogaNode(); - root_child0_child0.setFlexGrow(1f); - root_child0_child0.setFlexShrink(1f); - root_child0_child0.setFlexBasisPercent(0f); - root_child0.addChildAt(root_child0_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setWidth(50f); - root.addChildAt(root_child1, 1); - - final YogaNode root_child2 = new YogaNode(); - root_child2.setWidth(50f); - root.addChildAt(root_child2, 2); - - final YogaNode root_child3 = new YogaNode(); - root_child3.setWidth(50f); - root.addChildAt(root_child3, 3); - - final YogaNode root_child4 = new YogaNode(); - root_child4.setWidth(50f); - root.addChildAt(root_child4, 4); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child3.getLayoutX(), 0.0f); - assertEquals(50f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(50f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child4.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child3.getLayoutX(), 0.0f); - assertEquals(50f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(50f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child4.getLayoutHeight(), 0.0f); - } - - @Test - public void test_align_content_stretch_row_with_flex() { - final YogaNode root = new YogaNode(); - root.setFlexDirection(YogaFlexDirection.ROW); - root.setAlignContent(YogaAlign.STRETCH); - root.setWrap(YogaWrap.WRAP); - root.setWidth(150f); - root.setHeight(100f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setWidth(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setFlexGrow(1f); - root_child1.setFlexShrink(1f); - root_child1.setFlexBasisPercent(0f); - root_child1.setWidth(50f); - root.addChildAt(root_child1, 1); - - final YogaNode root_child2 = new YogaNode(); - root_child2.setWidth(50f); - root.addChildAt(root_child2, 2); - - final YogaNode root_child3 = new YogaNode(); - root_child3.setFlexGrow(1f); - root_child3.setFlexShrink(1f); - root_child3.setFlexBasisPercent(0f); - root_child3.setWidth(50f); - root.addChildAt(root_child3, 3); - - final YogaNode root_child4 = new YogaNode(); - root_child4.setWidth(50f); - root.addChildAt(root_child4, 4); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(0f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child3.getLayoutX(), 0.0f); - assertEquals(0f, root_child3.getLayoutY(), 0.0f); - assertEquals(0f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child4.getLayoutX(), 0.0f); - assertEquals(0f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child4.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(0f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child3.getLayoutX(), 0.0f); - assertEquals(0f, root_child3.getLayoutY(), 0.0f); - assertEquals(0f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child4.getLayoutX(), 0.0f); - assertEquals(0f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child4.getLayoutHeight(), 0.0f); - } - - @Test - public void test_align_content_stretch_row_with_flex_no_shrink() { - final YogaNode root = new YogaNode(); - root.setFlexDirection(YogaFlexDirection.ROW); - root.setAlignContent(YogaAlign.STRETCH); - root.setWrap(YogaWrap.WRAP); - root.setWidth(150f); - root.setHeight(100f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setWidth(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setFlexGrow(1f); - root_child1.setFlexShrink(1f); - root_child1.setFlexBasisPercent(0f); - root_child1.setWidth(50f); - root.addChildAt(root_child1, 1); - - final YogaNode root_child2 = new YogaNode(); - root_child2.setWidth(50f); - root.addChildAt(root_child2, 2); - - final YogaNode root_child3 = new YogaNode(); - root_child3.setFlexGrow(1f); - root_child3.setFlexBasisPercent(0f); - root_child3.setWidth(50f); - root.addChildAt(root_child3, 3); - - final YogaNode root_child4 = new YogaNode(); - root_child4.setWidth(50f); - root.addChildAt(root_child4, 4); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(0f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child3.getLayoutX(), 0.0f); - assertEquals(0f, root_child3.getLayoutY(), 0.0f); - assertEquals(0f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child4.getLayoutX(), 0.0f); - assertEquals(0f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child4.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(0f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child3.getLayoutX(), 0.0f); - assertEquals(0f, root_child3.getLayoutY(), 0.0f); - assertEquals(0f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child4.getLayoutX(), 0.0f); - assertEquals(0f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child4.getLayoutHeight(), 0.0f); - } - - @Test - public void test_align_content_stretch_row_with_margin() { - final YogaNode root = new YogaNode(); - root.setFlexDirection(YogaFlexDirection.ROW); - root.setAlignContent(YogaAlign.STRETCH); - root.setWrap(YogaWrap.WRAP); - root.setWidth(150f); - root.setHeight(100f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setWidth(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setMargin(YogaEdge.LEFT, 10f); - root_child1.setMargin(YogaEdge.TOP, 10f); - root_child1.setMargin(YogaEdge.RIGHT, 10f); - root_child1.setMargin(YogaEdge.BOTTOM, 10f); - root_child1.setWidth(50f); - root.addChildAt(root_child1, 1); - - final YogaNode root_child2 = new YogaNode(); - root_child2.setWidth(50f); - root.addChildAt(root_child2, 2); - - final YogaNode root_child3 = new YogaNode(); - root_child3.setMargin(YogaEdge.LEFT, 10f); - root_child3.setMargin(YogaEdge.TOP, 10f); - root_child3.setMargin(YogaEdge.RIGHT, 10f); - root_child3.setMargin(YogaEdge.BOTTOM, 10f); - root_child3.setWidth(50f); - root.addChildAt(root_child3, 3); - - final YogaNode root_child4 = new YogaNode(); - root_child4.setWidth(50f); - root.addChildAt(root_child4, 4); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(40f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(60f, root_child1.getLayoutX(), 0.0f); - assertEquals(10f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(20f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child2.getLayoutX(), 0.0f); - assertEquals(40f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(40f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(60f, root_child3.getLayoutX(), 0.0f); - assertEquals(50f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(20f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child4.getLayoutX(), 0.0f); - assertEquals(80f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(20f, root_child4.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(40f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(40f, root_child1.getLayoutX(), 0.0f); - assertEquals(10f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(20f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child2.getLayoutX(), 0.0f); - assertEquals(40f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(40f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(40f, root_child3.getLayoutX(), 0.0f); - assertEquals(50f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(20f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child4.getLayoutX(), 0.0f); - assertEquals(80f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(20f, root_child4.getLayoutHeight(), 0.0f); - } - - @Test - public void test_align_content_stretch_row_with_padding() { - final YogaNode root = new YogaNode(); - root.setFlexDirection(YogaFlexDirection.ROW); - root.setAlignContent(YogaAlign.STRETCH); - root.setWrap(YogaWrap.WRAP); - root.setWidth(150f); - root.setHeight(100f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setWidth(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setPadding(YogaEdge.LEFT, 10); - root_child1.setPadding(YogaEdge.TOP, 10); - root_child1.setPadding(YogaEdge.RIGHT, 10); - root_child1.setPadding(YogaEdge.BOTTOM, 10); - root_child1.setWidth(50f); - root.addChildAt(root_child1, 1); - - final YogaNode root_child2 = new YogaNode(); - root_child2.setWidth(50f); - root.addChildAt(root_child2, 2); - - final YogaNode root_child3 = new YogaNode(); - root_child3.setPadding(YogaEdge.LEFT, 10); - root_child3.setPadding(YogaEdge.TOP, 10); - root_child3.setPadding(YogaEdge.RIGHT, 10); - root_child3.setPadding(YogaEdge.BOTTOM, 10); - root_child3.setWidth(50f); - root.addChildAt(root_child3, 3); - - final YogaNode root_child4 = new YogaNode(); - root_child4.setWidth(50f); - root.addChildAt(root_child4, 4); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child3.getLayoutX(), 0.0f); - assertEquals(50f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(50f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child4.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child3.getLayoutX(), 0.0f); - assertEquals(50f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(50f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child4.getLayoutHeight(), 0.0f); - } - - @Test - public void test_align_content_stretch_row_with_single_row() { - final YogaNode root = new YogaNode(); - root.setFlexDirection(YogaFlexDirection.ROW); - root.setAlignContent(YogaAlign.STRETCH); - root.setWrap(YogaWrap.WRAP); - root.setWidth(150f); - root.setHeight(100f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setWidth(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setWidth(50f); - root.addChildAt(root_child1, 1); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child1.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(100f, root_child1.getLayoutHeight(), 0.0f); - } - - @Test - public void test_align_content_stretch_row_with_fixed_height() { - final YogaNode root = new YogaNode(); - root.setFlexDirection(YogaFlexDirection.ROW); - root.setAlignContent(YogaAlign.STRETCH); - root.setWrap(YogaWrap.WRAP); - root.setWidth(150f); - root.setHeight(100f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setWidth(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setWidth(50f); - root_child1.setHeight(60f); - root.addChildAt(root_child1, 1); - - final YogaNode root_child2 = new YogaNode(); - root_child2.setWidth(50f); - root.addChildAt(root_child2, 2); - - final YogaNode root_child3 = new YogaNode(); - root_child3.setWidth(50f); - root.addChildAt(root_child3, 3); - - final YogaNode root_child4 = new YogaNode(); - root_child4.setWidth(50f); - root.addChildAt(root_child4, 4); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(80f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(60f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(80f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child3.getLayoutX(), 0.0f); - assertEquals(80f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(20f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(80f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(20f, root_child4.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(80f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(60f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(80f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child3.getLayoutX(), 0.0f); - assertEquals(80f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(20f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(80f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(20f, root_child4.getLayoutHeight(), 0.0f); - } - - @Test - public void test_align_content_stretch_row_with_max_height() { - final YogaNode root = new YogaNode(); - root.setFlexDirection(YogaFlexDirection.ROW); - root.setAlignContent(YogaAlign.STRETCH); - root.setWrap(YogaWrap.WRAP); - root.setWidth(150f); - root.setHeight(100f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setWidth(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setWidth(50f); - root_child1.setMaxHeight(20f); - root.addChildAt(root_child1, 1); - - final YogaNode root_child2 = new YogaNode(); - root_child2.setWidth(50f); - root.addChildAt(root_child2, 2); - - final YogaNode root_child3 = new YogaNode(); - root_child3.setWidth(50f); - root.addChildAt(root_child3, 3); - - final YogaNode root_child4 = new YogaNode(); - root_child4.setWidth(50f); - root.addChildAt(root_child4, 4); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(20f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child3.getLayoutX(), 0.0f); - assertEquals(50f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(50f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child4.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(20f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child3.getLayoutX(), 0.0f); - assertEquals(50f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(50f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child4.getLayoutHeight(), 0.0f); - } - - @Test - public void test_align_content_stretch_row_with_min_height() { - final YogaNode root = new YogaNode(); - root.setFlexDirection(YogaFlexDirection.ROW); - root.setAlignContent(YogaAlign.STRETCH); - root.setWrap(YogaWrap.WRAP); - root.setWidth(150f); - root.setHeight(100f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setWidth(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setWidth(50f); - root_child1.setMinHeight(80f); - root.addChildAt(root_child1, 1); - - final YogaNode root_child2 = new YogaNode(); - root_child2.setWidth(50f); - root.addChildAt(root_child2, 2); - - final YogaNode root_child3 = new YogaNode(); - root_child3.setWidth(50f); - root.addChildAt(root_child3, 3); - - final YogaNode root_child4 = new YogaNode(); - root_child4.setWidth(50f); - root.addChildAt(root_child4, 4); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(90f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(90f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(90f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child3.getLayoutX(), 0.0f); - assertEquals(90f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(10f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(90f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(10f, root_child4.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(150f, root.getLayoutWidth(), 0.0f); - assertEquals(100f, root.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(90f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(0f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(90f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child2.getLayoutX(), 0.0f); - assertEquals(0f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(90f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(100f, root_child3.getLayoutX(), 0.0f); - assertEquals(90f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(10f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(90f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(10f, root_child4.getLayoutHeight(), 0.0f); - } - - @Test - public void test_align_content_stretch_column() { - final YogaNode root = new YogaNode(); - root.setAlignContent(YogaAlign.STRETCH); - root.setWrap(YogaWrap.WRAP); - root.setWidth(100f); - root.setHeight(150f); - - final YogaNode root_child0 = new YogaNode(); - root_child0.setHeight(50f); - root.addChildAt(root_child0, 0); - - final YogaNode root_child0_child0 = new YogaNode(); - root_child0_child0.setFlexGrow(1f); - root_child0_child0.setFlexShrink(1f); - root_child0_child0.setFlexBasisPercent(0f); - root_child0.addChildAt(root_child0_child0, 0); - - final YogaNode root_child1 = new YogaNode(); - root_child1.setFlexGrow(1f); - root_child1.setFlexShrink(1f); - root_child1.setFlexBasisPercent(0f); - root_child1.setHeight(50f); - root.addChildAt(root_child1, 1); - - final YogaNode root_child2 = new YogaNode(); - root_child2.setHeight(50f); - root.addChildAt(root_child2, 2); - - final YogaNode root_child3 = new YogaNode(); - root_child3.setHeight(50f); - root.addChildAt(root_child3, 3); - - final YogaNode root_child4 = new YogaNode(); - root_child4.setHeight(50f); - root.addChildAt(root_child4, 4); - root.setDirection(YogaDirection.LTR); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(100f, root.getLayoutWidth(), 0.0f); - assertEquals(150f, root.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0_child0.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child1.getLayoutX(), 0.0f); - assertEquals(50f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(0f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child2.getLayoutX(), 0.0f); - assertEquals(50f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child3.getLayoutX(), 0.0f); - assertEquals(100f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child4.getLayoutX(), 0.0f); - assertEquals(0f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child4.getLayoutHeight(), 0.0f); - - root.setDirection(YogaDirection.RTL); - root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); - - assertEquals(0f, root.getLayoutX(), 0.0f); - assertEquals(0f, root.getLayoutY(), 0.0f); - assertEquals(100f, root.getLayoutWidth(), 0.0f); - assertEquals(150f, root.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child0_child0.getLayoutX(), 0.0f); - assertEquals(0f, root_child0_child0.getLayoutY(), 0.0f); - assertEquals(50f, root_child0_child0.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child0_child0.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child1.getLayoutX(), 0.0f); - assertEquals(50f, root_child1.getLayoutY(), 0.0f); - assertEquals(50f, root_child1.getLayoutWidth(), 0.0f); - assertEquals(0f, root_child1.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child2.getLayoutX(), 0.0f); - assertEquals(50f, root_child2.getLayoutY(), 0.0f); - assertEquals(50f, root_child2.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child2.getLayoutHeight(), 0.0f); - - assertEquals(50f, root_child3.getLayoutX(), 0.0f); - assertEquals(100f, root_child3.getLayoutY(), 0.0f); - assertEquals(50f, root_child3.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child3.getLayoutHeight(), 0.0f); - - assertEquals(0f, root_child4.getLayoutX(), 0.0f); - assertEquals(0f, root_child4.getLayoutY(), 0.0f); - assertEquals(50f, root_child4.getLayoutWidth(), 0.0f); - assertEquals(50f, root_child4.getLayoutHeight(), 0.0f); - } - } diff --git a/javascript/tests/Facebook.Yoga/YGAlignContentTest.js b/javascript/tests/Facebook.Yoga/YGAlignContentTest.js index d18fce9a..14cf9820 100644 --- a/javascript/tests/Facebook.Yoga/YGAlignContentTest.js +++ b/javascript/tests/Facebook.Yoga/YGAlignContentTest.js @@ -112,211 +112,12 @@ it("align_content_flex_start", function () { (typeof gc !== "undefined") && gc(); console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); }); -it("align_content_flex_start_without_height_on_children", function () { - var root = Yoga.Node.create(); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(100); - root.setHeight(100); - - var root_child0 = Yoga.Node.create(); - root_child0.setWidth(50); - root.insertChild(root_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setWidth(50); - root_child1.setHeight(10); - root.insertChild(root_child1, 1); - - var root_child2 = Yoga.Node.create(); - root_child2.setWidth(50); - root.insertChild(root_child2, 2); - - var root_child3 = Yoga.Node.create(); - root_child3.setWidth(50); - root_child3.setHeight(10); - root.insertChild(root_child3, 3); - - var root_child4 = Yoga.Node.create(); - root_child4.setWidth(50); - root.insertChild(root_child4, 4); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(0 === root_child0.getComputedHeight(), "0 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(0 === root_child1.getComputedLeft(), "0 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(10 === root_child2.getComputedTop(), "10 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(0 === root_child2.getComputedHeight(), "0 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(10 === root_child3.getComputedTop(), "10 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(20 === root_child4.getComputedTop(), "20 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(0 === root_child4.getComputedHeight(), "0 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(50 === root_child0.getComputedLeft(), "50 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(0 === root_child0.getComputedHeight(), "0 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(50 === root_child2.getComputedLeft(), "50 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(10 === root_child2.getComputedTop(), "10 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(0 === root_child2.getComputedHeight(), "0 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(10 === root_child3.getComputedTop(), "10 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(20 === root_child4.getComputedTop(), "20 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(0 === root_child4.getComputedHeight(), "0 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); -it("align_content_flex_start_with_flex", function () { - var root = Yoga.Node.create(); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(100); - root.setHeight(120); - - var root_child0 = Yoga.Node.create(); - root_child0.setFlexGrow(1); - root_child0.setFlexBasis("0%"); - root_child0.setWidth(50); - root.insertChild(root_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setFlexGrow(1); - root_child1.setFlexBasis("0%"); - root_child1.setWidth(50); - root_child1.setHeight(10); - root.insertChild(root_child1, 1); - - var root_child2 = Yoga.Node.create(); - root_child2.setWidth(50); - root.insertChild(root_child2, 2); - - var root_child3 = Yoga.Node.create(); - root_child3.setFlexGrow(1); - root_child3.setFlexShrink(1); - root_child3.setFlexBasis("0%"); - root_child3.setWidth(50); - root.insertChild(root_child3, 3); - - var root_child4 = Yoga.Node.create(); - root_child4.setWidth(50); - root.insertChild(root_child4, 4); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(120 === root.getComputedHeight(), "120 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(40 === root_child0.getComputedHeight(), "40 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(0 === root_child1.getComputedLeft(), "0 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(40 === root_child1.getComputedTop(), "40 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(40 === root_child1.getComputedHeight(), "40 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(80 === root_child2.getComputedTop(), "80 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(0 === root_child2.getComputedHeight(), "0 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(80 === root_child3.getComputedTop(), "80 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(40 === root_child3.getComputedHeight(), "40 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(120 === root_child4.getComputedTop(), "120 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(0 === root_child4.getComputedHeight(), "0 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(120 === root.getComputedHeight(), "120 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(50 === root_child0.getComputedLeft(), "50 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(40 === root_child0.getComputedHeight(), "40 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(40 === root_child1.getComputedTop(), "40 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(40 === root_child1.getComputedHeight(), "40 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(50 === root_child2.getComputedLeft(), "50 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(80 === root_child2.getComputedTop(), "80 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(0 === root_child2.getComputedHeight(), "0 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(80 === root_child3.getComputedTop(), "80 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(40 === root_child3.getComputedHeight(), "40 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(120 === root_child4.getComputedTop(), "120 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(0 === root_child4.getComputedHeight(), "0 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); it("align_content_flex_end", function () { var root = Yoga.Node.create(); + root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW); root.setAlignContent(Yoga.ALIGN_FLEX_END); root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(100); + root.setWidth(130); root.setHeight(100); var root_child0 = Yoga.Node.create(); @@ -347,31 +148,31 @@ it("align_content_flex_end", function () { console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); + console.assert(130 === root.getComputedWidth(), "130 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); + console.assert(70 === root_child0.getComputedTop(), "70 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - console.assert(0 === root_child1.getComputedLeft(), "0 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(10 === root_child1.getComputedTop(), "10 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); + console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); + console.assert(70 === root_child1.getComputedTop(), "70 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(20 === root_child2.getComputedTop(), "20 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); + console.assert(80 === root_child2.getComputedTop(), "80 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(30 === root_child3.getComputedTop(), "30 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); + console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); + console.assert(80 === root_child3.getComputedTop(), "80 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(40 === root_child4.getComputedTop(), "40 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); + console.assert(90 === root_child4.getComputedTop(), "90 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); @@ -379,31 +180,133 @@ it("align_content_flex_end", function () { console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); + console.assert(130 === root.getComputedWidth(), "130 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - console.assert(50 === root_child0.getComputedLeft(), "50 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); + console.assert(80 === root_child0.getComputedLeft(), "80 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); + console.assert(70 === root_child0.getComputedTop(), "70 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); + console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); + console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); + + console.assert(30 === root_child1.getComputedLeft(), "30 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); + console.assert(70 === root_child1.getComputedTop(), "70 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); + console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); + console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); + + console.assert(80 === root_child2.getComputedLeft(), "80 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); + console.assert(80 === root_child2.getComputedTop(), "80 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); + console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); + console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); + + console.assert(30 === root_child3.getComputedLeft(), "30 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); + console.assert(80 === root_child3.getComputedTop(), "80 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); + console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); + console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); + + console.assert(80 === root_child4.getComputedLeft(), "80 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); + console.assert(90 === root_child4.getComputedTop(), "90 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); + console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); + console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); + + if (typeof root !== "undefined") + root.freeRecursive(); + + (typeof gc !== "undefined") && gc(); + console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); +}); +it("align_content_center", function () { + var root = Yoga.Node.create(); + root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW); + root.setAlignContent(Yoga.ALIGN_CENTER); + root.setFlexWrap(Yoga.WRAP_WRAP); + root.setWidth(130); + root.setHeight(100); + + var root_child0 = Yoga.Node.create(); + root_child0.setWidth(50); + root_child0.setHeight(10); + root.insertChild(root_child0, 0); + + var root_child1 = Yoga.Node.create(); + root_child1.setWidth(50); + root_child1.setHeight(10); + root.insertChild(root_child1, 1); + + var root_child2 = Yoga.Node.create(); + root_child2.setWidth(50); + root_child2.setHeight(10); + root.insertChild(root_child2, 2); + + var root_child3 = Yoga.Node.create(); + root_child3.setWidth(50); + root_child3.setHeight(10); + root.insertChild(root_child3, 3); + + var root_child4 = Yoga.Node.create(); + root_child4.setWidth(50); + root_child4.setHeight(10); + root.insertChild(root_child4, 4); + root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); + + console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); + console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); + console.assert(130 === root.getComputedWidth(), "130 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); + console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); + + console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); + console.assert(35 === root_child0.getComputedTop(), "35 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(10 === root_child1.getComputedTop(), "10 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); + console.assert(35 === root_child1.getComputedTop(), "35 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - console.assert(50 === root_child2.getComputedLeft(), "50 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(20 === root_child2.getComputedTop(), "20 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); + console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); + console.assert(45 === root_child2.getComputedTop(), "45 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(30 === root_child3.getComputedTop(), "30 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); + console.assert(45 === root_child3.getComputedTop(), "45 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(40 === root_child4.getComputedTop(), "40 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); + console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); + console.assert(55 === root_child4.getComputedTop(), "55 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); + console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); + console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); + + root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); + + console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); + console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); + console.assert(130 === root.getComputedWidth(), "130 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); + console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); + + console.assert(80 === root_child0.getComputedLeft(), "80 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); + console.assert(35 === root_child0.getComputedTop(), "35 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); + console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); + console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); + + console.assert(30 === root_child1.getComputedLeft(), "30 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); + console.assert(35 === root_child1.getComputedTop(), "35 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); + console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); + console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); + + console.assert(80 === root_child2.getComputedLeft(), "80 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); + console.assert(45 === root_child2.getComputedTop(), "45 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); + console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); + console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); + + console.assert(30 === root_child3.getComputedLeft(), "30 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); + console.assert(45 === root_child3.getComputedTop(), "45 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); + console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); + console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); + + console.assert(80 === root_child4.getComputedLeft(), "80 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); + console.assert(55 === root_child4.getComputedTop(), "55 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); @@ -713,1092 +616,3 @@ it("align_content_spacearound", function () { (typeof gc !== "undefined") && gc(); console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); }); -it("align_content_stretch_row", function () { - var root = Yoga.Node.create(); - root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW); - root.setAlignContent(Yoga.ALIGN_STRETCH); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(150); - root.setHeight(100); - - var root_child0 = Yoga.Node.create(); - root_child0.setWidth(50); - root.insertChild(root_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setWidth(50); - root.insertChild(root_child1, 1); - - var root_child2 = Yoga.Node.create(); - root_child2.setWidth(50); - root.insertChild(root_child2, 2); - - var root_child3 = Yoga.Node.create(); - root_child3.setWidth(50); - root.insertChild(root_child3, 3); - - var root_child4 = Yoga.Node.create(); - root_child4.setWidth(50); - root.insertChild(root_child4, 4); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0.getComputedHeight(), "50 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(50 === root_child1.getComputedHeight(), "50 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(100 === root_child2.getComputedLeft(), "100 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(50 === root_child2.getComputedHeight(), "50 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(50 === root_child3.getComputedTop(), "50 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(50 === root_child3.getComputedHeight(), "50 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(50 === root_child4.getComputedTop(), "50 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(50 === root_child4.getComputedHeight(), "50 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(100 === root_child0.getComputedLeft(), "100 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0.getComputedHeight(), "50 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(50 === root_child1.getComputedHeight(), "50 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(50 === root_child2.getComputedHeight(), "50 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(100 === root_child3.getComputedLeft(), "100 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(50 === root_child3.getComputedTop(), "50 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(50 === root_child3.getComputedHeight(), "50 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(50 === root_child4.getComputedTop(), "50 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(50 === root_child4.getComputedHeight(), "50 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); -it("align_content_stretch_row_with_children", function () { - var root = Yoga.Node.create(); - root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW); - root.setAlignContent(Yoga.ALIGN_STRETCH); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(150); - root.setHeight(100); - - var root_child0 = Yoga.Node.create(); - root_child0.setWidth(50); - root.insertChild(root_child0, 0); - - var root_child0_child0 = Yoga.Node.create(); - root_child0_child0.setFlexGrow(1); - root_child0_child0.setFlexShrink(1); - root_child0_child0.setFlexBasis("0%"); - root_child0.insertChild(root_child0_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setWidth(50); - root.insertChild(root_child1, 1); - - var root_child2 = Yoga.Node.create(); - root_child2.setWidth(50); - root.insertChild(root_child2, 2); - - var root_child3 = Yoga.Node.create(); - root_child3.setWidth(50); - root.insertChild(root_child3, 3); - - var root_child4 = Yoga.Node.create(); - root_child4.setWidth(50); - root.insertChild(root_child4, 4); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0.getComputedHeight(), "50 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(0 === root_child0_child0.getComputedLeft(), "0 === root_child0_child0.getComputedLeft() (" + root_child0_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0_child0.getComputedTop(), "0 === root_child0_child0.getComputedTop() (" + root_child0_child0.getComputedTop() + ")"); - console.assert(50 === root_child0_child0.getComputedWidth(), "50 === root_child0_child0.getComputedWidth() (" + root_child0_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0_child0.getComputedHeight(), "50 === root_child0_child0.getComputedHeight() (" + root_child0_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(50 === root_child1.getComputedHeight(), "50 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(100 === root_child2.getComputedLeft(), "100 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(50 === root_child2.getComputedHeight(), "50 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(50 === root_child3.getComputedTop(), "50 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(50 === root_child3.getComputedHeight(), "50 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(50 === root_child4.getComputedTop(), "50 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(50 === root_child4.getComputedHeight(), "50 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(100 === root_child0.getComputedLeft(), "100 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0.getComputedHeight(), "50 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(0 === root_child0_child0.getComputedLeft(), "0 === root_child0_child0.getComputedLeft() (" + root_child0_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0_child0.getComputedTop(), "0 === root_child0_child0.getComputedTop() (" + root_child0_child0.getComputedTop() + ")"); - console.assert(50 === root_child0_child0.getComputedWidth(), "50 === root_child0_child0.getComputedWidth() (" + root_child0_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0_child0.getComputedHeight(), "50 === root_child0_child0.getComputedHeight() (" + root_child0_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(50 === root_child1.getComputedHeight(), "50 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(50 === root_child2.getComputedHeight(), "50 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(100 === root_child3.getComputedLeft(), "100 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(50 === root_child3.getComputedTop(), "50 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(50 === root_child3.getComputedHeight(), "50 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(50 === root_child4.getComputedTop(), "50 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(50 === root_child4.getComputedHeight(), "50 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); -it("align_content_stretch_row_with_flex", function () { - var root = Yoga.Node.create(); - root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW); - root.setAlignContent(Yoga.ALIGN_STRETCH); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(150); - root.setHeight(100); - - var root_child0 = Yoga.Node.create(); - root_child0.setWidth(50); - root.insertChild(root_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setFlexGrow(1); - root_child1.setFlexShrink(1); - root_child1.setFlexBasis("0%"); - root_child1.setWidth(50); - root.insertChild(root_child1, 1); - - var root_child2 = Yoga.Node.create(); - root_child2.setWidth(50); - root.insertChild(root_child2, 2); - - var root_child3 = Yoga.Node.create(); - root_child3.setFlexGrow(1); - root_child3.setFlexShrink(1); - root_child3.setFlexBasis("0%"); - root_child3.setWidth(50); - root.insertChild(root_child3, 3); - - var root_child4 = Yoga.Node.create(); - root_child4.setWidth(50); - root.insertChild(root_child4, 4); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(100 === root_child0.getComputedHeight(), "100 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(0 === root_child1.getComputedWidth(), "0 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(100 === root_child1.getComputedHeight(), "100 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(50 === root_child2.getComputedLeft(), "50 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(100 === root_child2.getComputedHeight(), "100 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(100 === root_child3.getComputedLeft(), "100 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(0 === root_child3.getComputedTop(), "0 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(0 === root_child3.getComputedWidth(), "0 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(100 === root_child3.getComputedHeight(), "100 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(100 === root_child4.getComputedLeft(), "100 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(0 === root_child4.getComputedTop(), "0 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(100 === root_child4.getComputedHeight(), "100 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(100 === root_child0.getComputedLeft(), "100 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(100 === root_child0.getComputedHeight(), "100 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(100 === root_child1.getComputedLeft(), "100 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(0 === root_child1.getComputedWidth(), "0 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(100 === root_child1.getComputedHeight(), "100 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(50 === root_child2.getComputedLeft(), "50 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(100 === root_child2.getComputedHeight(), "100 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(0 === root_child3.getComputedTop(), "0 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(0 === root_child3.getComputedWidth(), "0 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(100 === root_child3.getComputedHeight(), "100 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(0 === root_child4.getComputedTop(), "0 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(100 === root_child4.getComputedHeight(), "100 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); -it("align_content_stretch_row_with_flex_no_shrink", function () { - var root = Yoga.Node.create(); - root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW); - root.setAlignContent(Yoga.ALIGN_STRETCH); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(150); - root.setHeight(100); - - var root_child0 = Yoga.Node.create(); - root_child0.setWidth(50); - root.insertChild(root_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setFlexGrow(1); - root_child1.setFlexShrink(1); - root_child1.setFlexBasis("0%"); - root_child1.setWidth(50); - root.insertChild(root_child1, 1); - - var root_child2 = Yoga.Node.create(); - root_child2.setWidth(50); - root.insertChild(root_child2, 2); - - var root_child3 = Yoga.Node.create(); - root_child3.setFlexGrow(1); - root_child3.setFlexBasis("0%"); - root_child3.setWidth(50); - root.insertChild(root_child3, 3); - - var root_child4 = Yoga.Node.create(); - root_child4.setWidth(50); - root.insertChild(root_child4, 4); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(100 === root_child0.getComputedHeight(), "100 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(0 === root_child1.getComputedWidth(), "0 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(100 === root_child1.getComputedHeight(), "100 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(50 === root_child2.getComputedLeft(), "50 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(100 === root_child2.getComputedHeight(), "100 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(100 === root_child3.getComputedLeft(), "100 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(0 === root_child3.getComputedTop(), "0 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(0 === root_child3.getComputedWidth(), "0 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(100 === root_child3.getComputedHeight(), "100 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(100 === root_child4.getComputedLeft(), "100 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(0 === root_child4.getComputedTop(), "0 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(100 === root_child4.getComputedHeight(), "100 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(100 === root_child0.getComputedLeft(), "100 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(100 === root_child0.getComputedHeight(), "100 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(100 === root_child1.getComputedLeft(), "100 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(0 === root_child1.getComputedWidth(), "0 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(100 === root_child1.getComputedHeight(), "100 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(50 === root_child2.getComputedLeft(), "50 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(100 === root_child2.getComputedHeight(), "100 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(0 === root_child3.getComputedTop(), "0 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(0 === root_child3.getComputedWidth(), "0 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(100 === root_child3.getComputedHeight(), "100 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(0 === root_child4.getComputedTop(), "0 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(100 === root_child4.getComputedHeight(), "100 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); -it("align_content_stretch_row_with_margin", function () { - var root = Yoga.Node.create(); - root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW); - root.setAlignContent(Yoga.ALIGN_STRETCH); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(150); - root.setHeight(100); - - var root_child0 = Yoga.Node.create(); - root_child0.setWidth(50); - root.insertChild(root_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setMargin(Yoga.EDGE_LEFT, 10); - root_child1.setMargin(Yoga.EDGE_TOP, 10); - root_child1.setMargin(Yoga.EDGE_RIGHT, 10); - root_child1.setMargin(Yoga.EDGE_BOTTOM, 10); - root_child1.setWidth(50); - root.insertChild(root_child1, 1); - - var root_child2 = Yoga.Node.create(); - root_child2.setWidth(50); - root.insertChild(root_child2, 2); - - var root_child3 = Yoga.Node.create(); - root_child3.setMargin(Yoga.EDGE_LEFT, 10); - root_child3.setMargin(Yoga.EDGE_TOP, 10); - root_child3.setMargin(Yoga.EDGE_RIGHT, 10); - root_child3.setMargin(Yoga.EDGE_BOTTOM, 10); - root_child3.setWidth(50); - root.insertChild(root_child3, 3); - - var root_child4 = Yoga.Node.create(); - root_child4.setWidth(50); - root.insertChild(root_child4, 4); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(40 === root_child0.getComputedHeight(), "40 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(60 === root_child1.getComputedLeft(), "60 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(10 === root_child1.getComputedTop(), "10 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(20 === root_child1.getComputedHeight(), "20 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(40 === root_child2.getComputedTop(), "40 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(40 === root_child2.getComputedHeight(), "40 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(60 === root_child3.getComputedLeft(), "60 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(50 === root_child3.getComputedTop(), "50 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(20 === root_child3.getComputedHeight(), "20 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(80 === root_child4.getComputedTop(), "80 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(20 === root_child4.getComputedHeight(), "20 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(100 === root_child0.getComputedLeft(), "100 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(40 === root_child0.getComputedHeight(), "40 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(40 === root_child1.getComputedLeft(), "40 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(10 === root_child1.getComputedTop(), "10 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(20 === root_child1.getComputedHeight(), "20 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(100 === root_child2.getComputedLeft(), "100 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(40 === root_child2.getComputedTop(), "40 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(40 === root_child2.getComputedHeight(), "40 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(40 === root_child3.getComputedLeft(), "40 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(50 === root_child3.getComputedTop(), "50 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(20 === root_child3.getComputedHeight(), "20 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(100 === root_child4.getComputedLeft(), "100 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(80 === root_child4.getComputedTop(), "80 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(20 === root_child4.getComputedHeight(), "20 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); -it("align_content_stretch_row_with_padding", function () { - var root = Yoga.Node.create(); - root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW); - root.setAlignContent(Yoga.ALIGN_STRETCH); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(150); - root.setHeight(100); - - var root_child0 = Yoga.Node.create(); - root_child0.setWidth(50); - root.insertChild(root_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setPadding(Yoga.EDGE_LEFT, 10); - root_child1.setPadding(Yoga.EDGE_TOP, 10); - root_child1.setPadding(Yoga.EDGE_RIGHT, 10); - root_child1.setPadding(Yoga.EDGE_BOTTOM, 10); - root_child1.setWidth(50); - root.insertChild(root_child1, 1); - - var root_child2 = Yoga.Node.create(); - root_child2.setWidth(50); - root.insertChild(root_child2, 2); - - var root_child3 = Yoga.Node.create(); - root_child3.setPadding(Yoga.EDGE_LEFT, 10); - root_child3.setPadding(Yoga.EDGE_TOP, 10); - root_child3.setPadding(Yoga.EDGE_RIGHT, 10); - root_child3.setPadding(Yoga.EDGE_BOTTOM, 10); - root_child3.setWidth(50); - root.insertChild(root_child3, 3); - - var root_child4 = Yoga.Node.create(); - root_child4.setWidth(50); - root.insertChild(root_child4, 4); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0.getComputedHeight(), "50 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(50 === root_child1.getComputedHeight(), "50 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(100 === root_child2.getComputedLeft(), "100 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(50 === root_child2.getComputedHeight(), "50 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(50 === root_child3.getComputedTop(), "50 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(50 === root_child3.getComputedHeight(), "50 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(50 === root_child4.getComputedTop(), "50 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(50 === root_child4.getComputedHeight(), "50 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(100 === root_child0.getComputedLeft(), "100 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0.getComputedHeight(), "50 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(50 === root_child1.getComputedHeight(), "50 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(50 === root_child2.getComputedHeight(), "50 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(100 === root_child3.getComputedLeft(), "100 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(50 === root_child3.getComputedTop(), "50 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(50 === root_child3.getComputedHeight(), "50 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(50 === root_child4.getComputedTop(), "50 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(50 === root_child4.getComputedHeight(), "50 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); -it("align_content_stretch_row_with_single_row", function () { - var root = Yoga.Node.create(); - root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW); - root.setAlignContent(Yoga.ALIGN_STRETCH); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(150); - root.setHeight(100); - - var root_child0 = Yoga.Node.create(); - root_child0.setWidth(50); - root.insertChild(root_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setWidth(50); - root.insertChild(root_child1, 1); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(100 === root_child0.getComputedHeight(), "100 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(100 === root_child1.getComputedHeight(), "100 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(100 === root_child0.getComputedLeft(), "100 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(100 === root_child0.getComputedHeight(), "100 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(100 === root_child1.getComputedHeight(), "100 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); -it("align_content_stretch_row_with_fixed_height", function () { - var root = Yoga.Node.create(); - root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW); - root.setAlignContent(Yoga.ALIGN_STRETCH); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(150); - root.setHeight(100); - - var root_child0 = Yoga.Node.create(); - root_child0.setWidth(50); - root.insertChild(root_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setWidth(50); - root_child1.setHeight(60); - root.insertChild(root_child1, 1); - - var root_child2 = Yoga.Node.create(); - root_child2.setWidth(50); - root.insertChild(root_child2, 2); - - var root_child3 = Yoga.Node.create(); - root_child3.setWidth(50); - root.insertChild(root_child3, 3); - - var root_child4 = Yoga.Node.create(); - root_child4.setWidth(50); - root.insertChild(root_child4, 4); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(80 === root_child0.getComputedHeight(), "80 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(60 === root_child1.getComputedHeight(), "60 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(100 === root_child2.getComputedLeft(), "100 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(80 === root_child2.getComputedHeight(), "80 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(80 === root_child3.getComputedTop(), "80 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(20 === root_child3.getComputedHeight(), "20 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(80 === root_child4.getComputedTop(), "80 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(20 === root_child4.getComputedHeight(), "20 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(100 === root_child0.getComputedLeft(), "100 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(80 === root_child0.getComputedHeight(), "80 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(60 === root_child1.getComputedHeight(), "60 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(80 === root_child2.getComputedHeight(), "80 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(100 === root_child3.getComputedLeft(), "100 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(80 === root_child3.getComputedTop(), "80 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(20 === root_child3.getComputedHeight(), "20 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(80 === root_child4.getComputedTop(), "80 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(20 === root_child4.getComputedHeight(), "20 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); -it("align_content_stretch_row_with_max_height", function () { - var root = Yoga.Node.create(); - root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW); - root.setAlignContent(Yoga.ALIGN_STRETCH); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(150); - root.setHeight(100); - - var root_child0 = Yoga.Node.create(); - root_child0.setWidth(50); - root.insertChild(root_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setWidth(50); - root_child1.setMaxHeight(20); - root.insertChild(root_child1, 1); - - var root_child2 = Yoga.Node.create(); - root_child2.setWidth(50); - root.insertChild(root_child2, 2); - - var root_child3 = Yoga.Node.create(); - root_child3.setWidth(50); - root.insertChild(root_child3, 3); - - var root_child4 = Yoga.Node.create(); - root_child4.setWidth(50); - root.insertChild(root_child4, 4); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0.getComputedHeight(), "50 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(20 === root_child1.getComputedHeight(), "20 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(100 === root_child2.getComputedLeft(), "100 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(50 === root_child2.getComputedHeight(), "50 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(50 === root_child3.getComputedTop(), "50 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(50 === root_child3.getComputedHeight(), "50 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(50 === root_child4.getComputedTop(), "50 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(50 === root_child4.getComputedHeight(), "50 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(100 === root_child0.getComputedLeft(), "100 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0.getComputedHeight(), "50 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(20 === root_child1.getComputedHeight(), "20 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(50 === root_child2.getComputedHeight(), "50 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(100 === root_child3.getComputedLeft(), "100 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(50 === root_child3.getComputedTop(), "50 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(50 === root_child3.getComputedHeight(), "50 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(50 === root_child4.getComputedTop(), "50 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(50 === root_child4.getComputedHeight(), "50 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); -it("align_content_stretch_row_with_min_height", function () { - var root = Yoga.Node.create(); - root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW); - root.setAlignContent(Yoga.ALIGN_STRETCH); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(150); - root.setHeight(100); - - var root_child0 = Yoga.Node.create(); - root_child0.setWidth(50); - root.insertChild(root_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setWidth(50); - root_child1.setMinHeight(80); - root.insertChild(root_child1, 1); - - var root_child2 = Yoga.Node.create(); - root_child2.setWidth(50); - root.insertChild(root_child2, 2); - - var root_child3 = Yoga.Node.create(); - root_child3.setWidth(50); - root.insertChild(root_child3, 3); - - var root_child4 = Yoga.Node.create(); - root_child4.setWidth(50); - root.insertChild(root_child4, 4); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(90 === root_child0.getComputedHeight(), "90 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(90 === root_child1.getComputedHeight(), "90 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(100 === root_child2.getComputedLeft(), "100 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(90 === root_child2.getComputedHeight(), "90 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(90 === root_child3.getComputedTop(), "90 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(90 === root_child4.getComputedTop(), "90 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(100 === root_child0.getComputedLeft(), "100 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(90 === root_child0.getComputedHeight(), "90 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(90 === root_child1.getComputedHeight(), "90 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(90 === root_child2.getComputedHeight(), "90 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(100 === root_child3.getComputedLeft(), "100 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(90 === root_child3.getComputedTop(), "90 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(90 === root_child4.getComputedTop(), "90 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); -it("align_content_stretch_column", function () { - var root = Yoga.Node.create(); - root.setAlignContent(Yoga.ALIGN_STRETCH); - root.setFlexWrap(Yoga.WRAP_WRAP); - root.setWidth(100); - root.setHeight(150); - - var root_child0 = Yoga.Node.create(); - root_child0.setHeight(50); - root.insertChild(root_child0, 0); - - var root_child0_child0 = Yoga.Node.create(); - root_child0_child0.setFlexGrow(1); - root_child0_child0.setFlexShrink(1); - root_child0_child0.setFlexBasis("0%"); - root_child0.insertChild(root_child0_child0, 0); - - var root_child1 = Yoga.Node.create(); - root_child1.setFlexGrow(1); - root_child1.setFlexShrink(1); - root_child1.setFlexBasis("0%"); - root_child1.setHeight(50); - root.insertChild(root_child1, 1); - - var root_child2 = Yoga.Node.create(); - root_child2.setHeight(50); - root.insertChild(root_child2, 2); - - var root_child3 = Yoga.Node.create(); - root_child3.setHeight(50); - root.insertChild(root_child3, 3); - - var root_child4 = Yoga.Node.create(); - root_child4.setHeight(50); - root.insertChild(root_child4, 4); - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(150 === root.getComputedHeight(), "150 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0.getComputedHeight(), "50 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(0 === root_child0_child0.getComputedLeft(), "0 === root_child0_child0.getComputedLeft() (" + root_child0_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0_child0.getComputedTop(), "0 === root_child0_child0.getComputedTop() (" + root_child0_child0.getComputedTop() + ")"); - console.assert(50 === root_child0_child0.getComputedWidth(), "50 === root_child0_child0.getComputedWidth() (" + root_child0_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0_child0.getComputedHeight(), "50 === root_child0_child0.getComputedHeight() (" + root_child0_child0.getComputedHeight() + ")"); - - console.assert(0 === root_child1.getComputedLeft(), "0 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(50 === root_child1.getComputedTop(), "50 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(0 === root_child1.getComputedHeight(), "0 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(50 === root_child2.getComputedTop(), "50 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(50 === root_child2.getComputedHeight(), "50 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(100 === root_child3.getComputedTop(), "100 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(50 === root_child3.getComputedHeight(), "50 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(0 === root_child4.getComputedTop(), "0 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(50 === root_child4.getComputedHeight(), "50 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL); - - console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")"); - console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")"); - console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")"); - console.assert(150 === root.getComputedHeight(), "150 === root.getComputedHeight() (" + root.getComputedHeight() + ")"); - - console.assert(50 === root_child0.getComputedLeft(), "50 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")"); - console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0.getComputedHeight(), "50 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")"); - - console.assert(0 === root_child0_child0.getComputedLeft(), "0 === root_child0_child0.getComputedLeft() (" + root_child0_child0.getComputedLeft() + ")"); - console.assert(0 === root_child0_child0.getComputedTop(), "0 === root_child0_child0.getComputedTop() (" + root_child0_child0.getComputedTop() + ")"); - console.assert(50 === root_child0_child0.getComputedWidth(), "50 === root_child0_child0.getComputedWidth() (" + root_child0_child0.getComputedWidth() + ")"); - console.assert(50 === root_child0_child0.getComputedHeight(), "50 === root_child0_child0.getComputedHeight() (" + root_child0_child0.getComputedHeight() + ")"); - - console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")"); - console.assert(50 === root_child1.getComputedTop(), "50 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")"); - console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")"); - console.assert(0 === root_child1.getComputedHeight(), "0 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")"); - - console.assert(50 === root_child2.getComputedLeft(), "50 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")"); - console.assert(50 === root_child2.getComputedTop(), "50 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")"); - console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")"); - console.assert(50 === root_child2.getComputedHeight(), "50 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")"); - - console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")"); - console.assert(100 === root_child3.getComputedTop(), "100 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")"); - console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")"); - console.assert(50 === root_child3.getComputedHeight(), "50 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")"); - - console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")"); - console.assert(0 === root_child4.getComputedTop(), "0 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")"); - console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")"); - console.assert(50 === root_child4.getComputedHeight(), "50 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")"); - - if (typeof root !== "undefined") - root.freeRecursive(); - - (typeof gc !== "undefined") && gc(); - console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")"); -}); diff --git a/tests/YGAlignContentTest.cpp b/tests/YGAlignContentTest.cpp index d6dac67a..2061af12 100644 --- a/tests/YGAlignContentTest.cpp +++ b/tests/YGAlignContentTest.cpp @@ -110,205 +110,12 @@ TEST(YogaTest, align_content_flex_start) { YGNodeFreeRecursive(root); } -TEST(YogaTest, align_content_flex_start_without_height_on_children) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 100); - YGNodeStyleSetHeight(root, 100); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetWidth(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetWidth(root_child1, 50); - YGNodeStyleSetHeight(root_child1, 10); - YGNodeInsertChild(root, root_child1, 1); - - const YGNodeRef root_child2 = YGNodeNew(); - YGNodeStyleSetWidth(root_child2, 50); - YGNodeInsertChild(root, root_child2, 2); - - const YGNodeRef root_child3 = YGNodeNew(); - YGNodeStyleSetWidth(root_child3, 50); - YGNodeStyleSetHeight(root_child3, 10); - YGNodeInsertChild(root, root_child3, 3); - - const YGNodeRef root_child4 = YGNodeNew(); - YGNodeStyleSetWidth(root_child4, 50); - YGNodeInsertChild(root, root_child4, 4); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child4)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child4)); - - YGNodeFreeRecursive(root); -} - -TEST(YogaTest, align_content_flex_start_with_flex) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 100); - YGNodeStyleSetHeight(root, 120); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetFlexGrow(root_child0, 1); - YGNodeStyleSetFlexBasisPercent(root_child0, 0); - YGNodeStyleSetWidth(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetFlexGrow(root_child1, 1); - YGNodeStyleSetFlexBasisPercent(root_child1, 0); - YGNodeStyleSetWidth(root_child1, 50); - YGNodeStyleSetHeight(root_child1, 10); - YGNodeInsertChild(root, root_child1, 1); - - const YGNodeRef root_child2 = YGNodeNew(); - YGNodeStyleSetWidth(root_child2, 50); - YGNodeInsertChild(root, root_child2, 2); - - const YGNodeRef root_child3 = YGNodeNew(); - YGNodeStyleSetFlexGrow(root_child3, 1); - YGNodeStyleSetFlexShrink(root_child3, 1); - YGNodeStyleSetFlexBasisPercent(root_child3, 0); - YGNodeStyleSetWidth(root_child3, 50); - YGNodeInsertChild(root, root_child3, 3); - - const YGNodeRef root_child4 = YGNodeNew(); - YGNodeStyleSetWidth(root_child4, 50); - YGNodeInsertChild(root, root_child4, 4); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(120, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(120, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child4)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(120, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(120, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child4)); - - YGNodeFreeRecursive(root); -} - TEST(YogaTest, align_content_flex_end) { const YGNodeRef root = YGNodeNew(); + YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); YGNodeStyleSetAlignContent(root, YGAlignFlexEnd); YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 100); + YGNodeStyleSetWidth(root, 130); YGNodeStyleSetHeight(root, 100); const YGNodeRef root_child0 = YGNodeNew(); @@ -339,31 +146,31 @@ TEST(YogaTest, align_content_flex_end) { ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root)); + ASSERT_FLOAT_EQ(130, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); + ASSERT_FLOAT_EQ(70, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(50, 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(50, YGNodeLayoutGetLeft(root_child1)); + ASSERT_FLOAT_EQ(70, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(50, 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(80, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(30, YGNodeLayoutGetTop(root_child3)); + ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3)); + ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child3)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child4)); + ASSERT_FLOAT_EQ(90, YGNodeLayoutGetTop(root_child4)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4)); @@ -371,31 +178,130 @@ TEST(YogaTest, align_content_flex_end) { ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root)); + ASSERT_FLOAT_EQ(130, YGNodeLayoutGetWidth(root)); ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); + ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child0)); + ASSERT_FLOAT_EQ(70, YGNodeLayoutGetTop(root_child0)); + ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); + ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); + + ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child1)); + ASSERT_FLOAT_EQ(70, YGNodeLayoutGetTop(root_child1)); + ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); + ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); + + ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child2)); + ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child2)); + ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); + ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); + + ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child3)); + ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child3)); + ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); + ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3)); + + ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child4)); + ASSERT_FLOAT_EQ(90, YGNodeLayoutGetTop(root_child4)); + ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); + ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4)); + + YGNodeFreeRecursive(root); +} + +TEST(YogaTest, align_content_center) { + const YGNodeRef root = YGNodeNew(); + YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); + YGNodeStyleSetAlignContent(root, YGAlignCenter); + YGNodeStyleSetFlexWrap(root, YGWrapWrap); + YGNodeStyleSetWidth(root, 130); + YGNodeStyleSetHeight(root, 100); + + const YGNodeRef root_child0 = YGNodeNew(); + YGNodeStyleSetWidth(root_child0, 50); + YGNodeStyleSetHeight(root_child0, 10); + YGNodeInsertChild(root, root_child0, 0); + + const YGNodeRef root_child1 = YGNodeNew(); + YGNodeStyleSetWidth(root_child1, 50); + YGNodeStyleSetHeight(root_child1, 10); + YGNodeInsertChild(root, root_child1, 1); + + const YGNodeRef root_child2 = YGNodeNew(); + YGNodeStyleSetWidth(root_child2, 50); + YGNodeStyleSetHeight(root_child2, 10); + YGNodeInsertChild(root, root_child2, 2); + + const YGNodeRef root_child3 = YGNodeNew(); + YGNodeStyleSetWidth(root_child3, 50); + YGNodeStyleSetHeight(root_child3, 10); + YGNodeInsertChild(root, root_child3, 3); + + const YGNodeRef root_child4 = YGNodeNew(); + YGNodeStyleSetWidth(root_child4, 50); + YGNodeStyleSetHeight(root_child4, 10); + YGNodeInsertChild(root, root_child4, 4); + YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); + + ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); + ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); + ASSERT_FLOAT_EQ(130, YGNodeLayoutGetWidth(root)); + ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); + + ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); + ASSERT_FLOAT_EQ(35, YGNodeLayoutGetTop(root_child0)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1)); + ASSERT_FLOAT_EQ(35, YGNodeLayoutGetTop(root_child1)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2)); + ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); + ASSERT_FLOAT_EQ(45, YGNodeLayoutGetTop(root_child2)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(30, YGNodeLayoutGetTop(root_child3)); + ASSERT_FLOAT_EQ(45, YGNodeLayoutGetTop(root_child3)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child4)); + ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4)); + ASSERT_FLOAT_EQ(55, YGNodeLayoutGetTop(root_child4)); + ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); + ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4)); + + YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); + + ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); + ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); + ASSERT_FLOAT_EQ(130, YGNodeLayoutGetWidth(root)); + ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); + + ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child0)); + ASSERT_FLOAT_EQ(35, YGNodeLayoutGetTop(root_child0)); + ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); + ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0)); + + ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child1)); + ASSERT_FLOAT_EQ(35, YGNodeLayoutGetTop(root_child1)); + ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); + ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1)); + + ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child2)); + ASSERT_FLOAT_EQ(45, YGNodeLayoutGetTop(root_child2)); + ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); + ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2)); + + ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child3)); + ASSERT_FLOAT_EQ(45, YGNodeLayoutGetTop(root_child3)); + ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); + ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3)); + + ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child4)); + ASSERT_FLOAT_EQ(55, YGNodeLayoutGetTop(root_child4)); ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4)); @@ -692,1059 +598,3 @@ TEST(YogaTest, align_content_spacearound) { YGNodeFreeRecursive(root); } - -TEST(YogaTest, align_content_stretch_row) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); - YGNodeStyleSetAlignContent(root, YGAlignStretch); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 150); - YGNodeStyleSetHeight(root, 100); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetWidth(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetWidth(root_child1, 50); - YGNodeInsertChild(root, root_child1, 1); - - const YGNodeRef root_child2 = YGNodeNew(); - YGNodeStyleSetWidth(root_child2, 50); - YGNodeInsertChild(root, root_child2, 2); - - const YGNodeRef root_child3 = YGNodeNew(); - YGNodeStyleSetWidth(root_child3, 50); - YGNodeInsertChild(root, root_child3, 3); - - const YGNodeRef root_child4 = YGNodeNew(); - YGNodeStyleSetWidth(root_child4, 50); - YGNodeInsertChild(root, root_child4, 4); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child4)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child4)); - - YGNodeFreeRecursive(root); -} - -TEST(YogaTest, align_content_stretch_row_with_children) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); - YGNodeStyleSetAlignContent(root, YGAlignStretch); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 150); - YGNodeStyleSetHeight(root, 100); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetWidth(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child0_child0 = YGNodeNew(); - YGNodeStyleSetFlexGrow(root_child0_child0, 1); - YGNodeStyleSetFlexShrink(root_child0_child0, 1); - YGNodeStyleSetFlexBasisPercent(root_child0_child0, 0); - YGNodeInsertChild(root_child0, root_child0_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetWidth(root_child1, 50); - YGNodeInsertChild(root, root_child1, 1); - - const YGNodeRef root_child2 = YGNodeNew(); - YGNodeStyleSetWidth(root_child2, 50); - YGNodeInsertChild(root, root_child2, 2); - - const YGNodeRef root_child3 = YGNodeNew(); - YGNodeStyleSetWidth(root_child3, 50); - YGNodeInsertChild(root, root_child3, 3); - - const YGNodeRef root_child4 = YGNodeNew(); - YGNodeStyleSetWidth(root_child4, 50); - YGNodeInsertChild(root, root_child4, 4); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child4)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child4)); - - YGNodeFreeRecursive(root); -} - -TEST(YogaTest, align_content_stretch_row_with_flex) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); - YGNodeStyleSetAlignContent(root, YGAlignStretch); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 150); - YGNodeStyleSetHeight(root, 100); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetWidth(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetFlexGrow(root_child1, 1); - YGNodeStyleSetFlexShrink(root_child1, 1); - YGNodeStyleSetFlexBasisPercent(root_child1, 0); - YGNodeStyleSetWidth(root_child1, 50); - YGNodeInsertChild(root, root_child1, 1); - - const YGNodeRef root_child2 = YGNodeNew(); - YGNodeStyleSetWidth(root_child2, 50); - YGNodeInsertChild(root, root_child2, 2); - - const YGNodeRef root_child3 = YGNodeNew(); - YGNodeStyleSetFlexGrow(root_child3, 1); - YGNodeStyleSetFlexShrink(root_child3, 1); - YGNodeStyleSetFlexBasisPercent(root_child3, 0); - YGNodeStyleSetWidth(root_child3, 50); - YGNodeInsertChild(root, root_child3, 3); - - const YGNodeRef root_child4 = YGNodeNew(); - YGNodeStyleSetWidth(root_child4, 50); - YGNodeInsertChild(root, root_child4, 4); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child4)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child4)); - - YGNodeFreeRecursive(root); -} - -TEST(YogaTest, align_content_stretch_row_with_flex_no_shrink) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); - YGNodeStyleSetAlignContent(root, YGAlignStretch); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 150); - YGNodeStyleSetHeight(root, 100); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetWidth(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetFlexGrow(root_child1, 1); - YGNodeStyleSetFlexShrink(root_child1, 1); - YGNodeStyleSetFlexBasisPercent(root_child1, 0); - YGNodeStyleSetWidth(root_child1, 50); - YGNodeInsertChild(root, root_child1, 1); - - const YGNodeRef root_child2 = YGNodeNew(); - YGNodeStyleSetWidth(root_child2, 50); - YGNodeInsertChild(root, root_child2, 2); - - const YGNodeRef root_child3 = YGNodeNew(); - YGNodeStyleSetFlexGrow(root_child3, 1); - YGNodeStyleSetFlexBasisPercent(root_child3, 0); - YGNodeStyleSetWidth(root_child3, 50); - YGNodeInsertChild(root, root_child3, 3); - - const YGNodeRef root_child4 = YGNodeNew(); - YGNodeStyleSetWidth(root_child4, 50); - YGNodeInsertChild(root, root_child4, 4); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child4)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child4)); - - YGNodeFreeRecursive(root); -} - -TEST(YogaTest, align_content_stretch_row_with_margin) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); - YGNodeStyleSetAlignContent(root, YGAlignStretch); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 150); - YGNodeStyleSetHeight(root, 100); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetWidth(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetMargin(root_child1, YGEdgeLeft, 10); - YGNodeStyleSetMargin(root_child1, YGEdgeTop, 10); - YGNodeStyleSetMargin(root_child1, YGEdgeRight, 10); - YGNodeStyleSetMargin(root_child1, YGEdgeBottom, 10); - YGNodeStyleSetWidth(root_child1, 50); - YGNodeInsertChild(root, root_child1, 1); - - const YGNodeRef root_child2 = YGNodeNew(); - YGNodeStyleSetWidth(root_child2, 50); - YGNodeInsertChild(root, root_child2, 2); - - const YGNodeRef root_child3 = YGNodeNew(); - YGNodeStyleSetMargin(root_child3, YGEdgeLeft, 10); - YGNodeStyleSetMargin(root_child3, YGEdgeTop, 10); - YGNodeStyleSetMargin(root_child3, YGEdgeRight, 10); - YGNodeStyleSetMargin(root_child3, YGEdgeBottom, 10); - YGNodeStyleSetWidth(root_child3, 50); - YGNodeInsertChild(root, root_child3, 3); - - const YGNodeRef root_child4 = YGNodeNew(); - YGNodeStyleSetWidth(root_child4, 50); - YGNodeInsertChild(root, root_child4, 4); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(60, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(60, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child4)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(40, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child4)); - - YGNodeFreeRecursive(root); -} - -TEST(YogaTest, align_content_stretch_row_with_padding) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); - YGNodeStyleSetAlignContent(root, YGAlignStretch); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 150); - YGNodeStyleSetHeight(root, 100); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetWidth(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetPadding(root_child1, YGEdgeLeft, 10); - YGNodeStyleSetPadding(root_child1, YGEdgeTop, 10); - YGNodeStyleSetPadding(root_child1, YGEdgeRight, 10); - YGNodeStyleSetPadding(root_child1, YGEdgeBottom, 10); - YGNodeStyleSetWidth(root_child1, 50); - YGNodeInsertChild(root, root_child1, 1); - - const YGNodeRef root_child2 = YGNodeNew(); - YGNodeStyleSetWidth(root_child2, 50); - YGNodeInsertChild(root, root_child2, 2); - - const YGNodeRef root_child3 = YGNodeNew(); - YGNodeStyleSetPadding(root_child3, YGEdgeLeft, 10); - YGNodeStyleSetPadding(root_child3, YGEdgeTop, 10); - YGNodeStyleSetPadding(root_child3, YGEdgeRight, 10); - YGNodeStyleSetPadding(root_child3, YGEdgeBottom, 10); - YGNodeStyleSetWidth(root_child3, 50); - YGNodeInsertChild(root, root_child3, 3); - - const YGNodeRef root_child4 = YGNodeNew(); - YGNodeStyleSetWidth(root_child4, 50); - YGNodeInsertChild(root, root_child4, 4); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child4)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child4)); - - YGNodeFreeRecursive(root); -} - -TEST(YogaTest, align_content_stretch_row_with_single_row) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); - YGNodeStyleSetAlignContent(root, YGAlignStretch); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 150); - YGNodeStyleSetHeight(root, 100); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetWidth(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetWidth(root_child1, 50); - YGNodeInsertChild(root, root_child1, 1); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child1)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child1)); - - YGNodeFreeRecursive(root); -} - -TEST(YogaTest, align_content_stretch_row_with_fixed_height) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); - YGNodeStyleSetAlignContent(root, YGAlignStretch); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 150); - YGNodeStyleSetHeight(root, 100); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetWidth(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetWidth(root_child1, 50); - YGNodeStyleSetHeight(root_child1, 60); - YGNodeInsertChild(root, root_child1, 1); - - const YGNodeRef root_child2 = YGNodeNew(); - YGNodeStyleSetWidth(root_child2, 50); - YGNodeInsertChild(root, root_child2, 2); - - const YGNodeRef root_child3 = YGNodeNew(); - YGNodeStyleSetWidth(root_child3, 50); - YGNodeInsertChild(root, root_child3, 3); - - const YGNodeRef root_child4 = YGNodeNew(); - YGNodeStyleSetWidth(root_child4, 50); - YGNodeInsertChild(root, root_child4, 4); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(60, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child4)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(60, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child4)); - - YGNodeFreeRecursive(root); -} - -TEST(YogaTest, align_content_stretch_row_with_max_height) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); - YGNodeStyleSetAlignContent(root, YGAlignStretch); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 150); - YGNodeStyleSetHeight(root, 100); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetWidth(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetWidth(root_child1, 50); - YGNodeStyleSetMaxHeight(root_child1, 20); - YGNodeInsertChild(root, root_child1, 1); - - const YGNodeRef root_child2 = YGNodeNew(); - YGNodeStyleSetWidth(root_child2, 50); - YGNodeInsertChild(root, root_child2, 2); - - const YGNodeRef root_child3 = YGNodeNew(); - YGNodeStyleSetWidth(root_child3, 50); - YGNodeInsertChild(root, root_child3, 3); - - const YGNodeRef root_child4 = YGNodeNew(); - YGNodeStyleSetWidth(root_child4, 50); - YGNodeInsertChild(root, root_child4, 4); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child4)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(20, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child4)); - - YGNodeFreeRecursive(root); -} - -TEST(YogaTest, align_content_stretch_row_with_min_height) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow); - YGNodeStyleSetAlignContent(root, YGAlignStretch); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 150); - YGNodeStyleSetHeight(root, 100); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetWidth(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetWidth(root_child1, 50); - YGNodeStyleSetMinHeight(root_child1, 80); - YGNodeInsertChild(root, root_child1, 1); - - const YGNodeRef root_child2 = YGNodeNew(); - YGNodeStyleSetWidth(root_child2, 50); - YGNodeInsertChild(root, root_child2, 2); - - const YGNodeRef root_child3 = YGNodeNew(); - YGNodeStyleSetWidth(root_child3, 50); - YGNodeInsertChild(root, root_child3, 3); - - const YGNodeRef root_child4 = YGNodeNew(); - YGNodeStyleSetWidth(root_child4, 50); - YGNodeInsertChild(root, root_child4, 4); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(90, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(90, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(90, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(90, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(90, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(90, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(90, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(90, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(90, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(90, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4)); - - YGNodeFreeRecursive(root); -} - -TEST(YogaTest, align_content_stretch_column) { - const YGNodeRef root = YGNodeNew(); - YGNodeStyleSetAlignContent(root, YGAlignStretch); - YGNodeStyleSetFlexWrap(root, YGWrapWrap); - YGNodeStyleSetWidth(root, 100); - YGNodeStyleSetHeight(root, 150); - - const YGNodeRef root_child0 = YGNodeNew(); - YGNodeStyleSetHeight(root_child0, 50); - YGNodeInsertChild(root, root_child0, 0); - - const YGNodeRef root_child0_child0 = YGNodeNew(); - YGNodeStyleSetFlexGrow(root_child0_child0, 1); - YGNodeStyleSetFlexShrink(root_child0_child0, 1); - YGNodeStyleSetFlexBasisPercent(root_child0_child0, 0); - YGNodeInsertChild(root_child0, root_child0_child0, 0); - - const YGNodeRef root_child1 = YGNodeNew(); - YGNodeStyleSetFlexGrow(root_child1, 1); - YGNodeStyleSetFlexShrink(root_child1, 1); - YGNodeStyleSetFlexBasisPercent(root_child1, 0); - YGNodeStyleSetHeight(root_child1, 50); - YGNodeInsertChild(root, root_child1, 1); - - const YGNodeRef root_child2 = YGNodeNew(); - YGNodeStyleSetHeight(root_child2, 50); - YGNodeInsertChild(root, root_child2, 2); - - const YGNodeRef root_child3 = YGNodeNew(); - YGNodeStyleSetHeight(root_child3, 50); - YGNodeInsertChild(root, root_child3, 3); - - const YGNodeRef root_child4 = YGNodeNew(); - YGNodeStyleSetHeight(root_child4, 50); - YGNodeInsertChild(root, root_child4, 4); - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0_child0)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child4)); - - YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root)); - ASSERT_FLOAT_EQ(150, YGNodeLayoutGetHeight(root)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0_child0)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0_child0)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child1)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child1)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetTop(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child2)); - - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3)); - ASSERT_FLOAT_EQ(100, YGNodeLayoutGetTop(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child3)); - - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4)); - ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4)); - ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child4)); - - YGNodeFreeRecursive(root); -} diff --git a/yoga/Yoga.c b/yoga/Yoga.c index 771a8a17..e8d5c31e 100644 --- a/yoga/Yoga.c +++ b/yoga/Yoga.c @@ -2485,23 +2485,10 @@ static void YGNodelayoutImpl(const YGNodeRef node, // the spacing. mainDim += betweenMainDim + YGNodeDimWithMargin(child, mainAxis, availableInnerWidth); - if (YGNodeIsStyleDimDefined(child, crossAxis, availableInnerCrossDim) || - child->measure != NULL || - !isNodeFlexWrap) { - // The cross dimension is the max of the elements dimension since - // there - // can only be one element in that cross dimension. - crossDim = - fmaxf(crossDim, YGNodeDimWithMargin(child, crossAxis, availableInnerWidth)); - } else { - // If we wrap the lines we only take the space we need at least. - crossDim = fmaxf( - crossDim, - YGNodeMarginForAxis(child, crossAxis, availableInnerWidth) + - fmaxf(YGValueResolve(&child->style.minDimensions[dim[crossAxis]], - availableInnerWidth), - YGNodePaddingAndBorderForAxis(child, crossAxis, availableInnerWidth))); - } + // The cross dimension is the max of the elements dimension since + // there + // can only be one element in that cross dimension. + crossDim = fmaxf(crossDim, YGNodeDimWithMargin(child, crossAxis, availableInnerWidth)); } } else if (performLayout) { child->layout.position[pos[mainAxis]] += @@ -2665,8 +2652,7 @@ static void YGNodelayoutImpl(const YGNodeRef node, } // STEP 8: MULTI-LINE CONTENT ALIGNMENT - if (performLayout && - (lineCount > 1 || node->style.alignContent == YGAlignStretch || YGIsBaselineLayout(node)) && + if (performLayout && (lineCount > 1 || YGIsBaselineLayout(node)) && !YGFloatIsUndefined(availableInnerCrossDim)) { const float remainingAlignContentDim = availableInnerCrossDim - totalLineCrossDim; @@ -2774,36 +2760,8 @@ static void YGNodelayoutImpl(const YGNodeRef node, case YGAlignStretch: { child->layout.position[pos[crossAxis]] = currentLead + YGNodeLeadingMargin(child, crossAxis, availableInnerWidth); - - // Remeasure child with the line height as it as been only measured with the - // parents height yet. - if (!YGNodeIsStyleDimDefined(child, crossAxis, availableInnerCrossDim)) { - const float childWidth = - isMainAxisRow ? (child->layout.measuredDimensions[YGDimensionWidth] + - YGNodeMarginForAxis(child, crossAxis, availableInnerWidth)) - : lineHeight; - - const float childHeight = - !isMainAxisRow ? (child->layout.measuredDimensions[YGDimensionHeight] + - YGNodeMarginForAxis(child, crossAxis, availableInnerWidth)) - : lineHeight; - - if (!(YGFloatsEqual(childWidth, - child->layout.measuredDimensions[YGDimensionWidth]) && - YGFloatsEqual(childHeight, - child->layout.measuredDimensions[YGDimensionHeight]))) { - YGLayoutNodeInternal(child, - childWidth, - childHeight, - direction, - YGMeasureModeExactly, - YGMeasureModeExactly, - availableInnerWidth, - availableInnerHeight, - true, - "stretch"); - } - } + // TODO(prenaux): Correctly set the height of items with indefinite + // (auto) crossAxis dimension. break; } case YGAlignBaseline: {