[Test] public void dirty_node_only_if_children_are_actually_removed() { YGNode root = YGNodeNew(); YGNodeStyleSetAlignItems(root, YGAlign.FlexStart); YGNodeStyleSetWidth(root, 50); YGNodeStyleSetHeight(root, 50); YGNode child0 = YGNodeNew(); YGNodeStyleSetWidth(child0, 50); YGNodeStyleSetHeight(child0, 25); YGNodeInsertChild(root, child0, 0); YGNodeCalculateLayout(root, YGValue.YGUndefined, YGValue.YGUndefined, YGDirection.LTR); YGNode child1 = YGNodeNew(); YGNodeRemoveChild(root, child1); Assert.IsFalse(root.isDirty()); YGNodeRemoveChild(root, child0); Assert.IsTrue(root.isDirty()); }
[Test] public void dirty_propagation() { YGNode root = YGNodeNew(); YGNodeStyleSetAlignItems(root, YGAlign.FlexStart); YGNodeStyleSetWidth(root, 100); YGNodeStyleSetHeight(root, 100); YGNode root_child0 = YGNodeNew(); YGNodeStyleSetWidth(root_child0, 50); YGNodeStyleSetHeight(root_child0, 20); YGNodeInsertChild(root, root_child0, 0); YGNode root_child1 = YGNodeNew(); YGNodeStyleSetWidth(root_child1, 50); YGNodeStyleSetHeight(root_child1, 20); YGNodeInsertChild(root, root_child1, 1); YGNodeCalculateLayout(root, YGValue.YGUndefined, YGValue.YGUndefined, YGDirection.LTR); YGNodeStyleSetWidth(root_child0, 20); Assert.IsTrue(root_child0.isDirty()); Assert.IsFalse(root_child1.isDirty()); Assert.IsTrue(root.isDirty()); YGNodeCalculateLayout(root, YGValue.YGUndefined, YGValue.YGUndefined, YGDirection.LTR); Assert.IsFalse(root_child0.isDirty()); Assert.IsFalse(root_child1.isDirty()); Assert.IsFalse(root.isDirty()); }
[Test] public void copy_style_same() { YGNode node0 = YGNodeNew(); YGNode node1 = YGNodeNew(); Assert.IsFalse(node0.isDirty()); YGNodeCopyStyle(node0, node1); Assert.IsFalse(node0.isDirty()); }
[Test] public void dirty_node_only_if_undefined_values_gets_set_to_undefined() { YGNode root = YGNodeNew(); YGNodeStyleSetWidth(root, 50); YGNodeStyleSetHeight(root, 50); YGNodeStyleSetMinWidth(root, YGValue.YGUndefined); YGNodeCalculateLayout(root, YGValue.YGUndefined, YGValue.YGUndefined, YGDirection.LTR); Assert.IsFalse(root.isDirty()); YGNodeStyleSetMinWidth(root, YGValue.YGUndefined); Assert.IsFalse(root.isDirty()); }
[Test] public void copy_style_modified_same() { YGNode node0 = YGNodeNew(); YGNodeStyleSetFlexDirection(node0, YGFlexDirection.Row); YGNodeStyleSetMaxHeight(node0, 10); YGNodeCalculateLayout(node0, YGValue.YGUndefined, YGValue.YGUndefined, YGDirection.LTR); Assert.IsFalse(node0.isDirty()); YGNode node1 = YGNodeNew(); YGNodeStyleSetFlexDirection(node1, YGFlexDirection.Row); YGNodeStyleSetMaxHeight(node1, 10); YGNodeCopyStyle(node0, node1); Assert.IsFalse(node0.isDirty()); }
[Test] public void copy_style_modified() { YGNode node0 = YGNodeNew(); Assert.IsFalse(node0.isDirty()); Assert.AreEqual(YGFlexDirection.Column, YGNodeStyleGetFlexDirection(node0)); Assert.IsFalse(YGNodeStyleGetMaxHeight(node0).unit != YGUnit.Undefined); YGNode node1 = YGNodeNew(); YGNodeStyleSetFlexDirection(node1, YGFlexDirection.Row); YGNodeStyleSetMaxHeight(node1, 10); YGNodeCopyStyle(node0, node1); Assert.IsTrue(node0.isDirty()); Assert.AreEqual(YGFlexDirection.Row, YGNodeStyleGetFlexDirection(node0)); Assert.AreEqual(10, YGNodeStyleGetMaxHeight(node0).value); }