public static void CompareNodes(EditorTree editorTree, IAstNode node1, IAstNode node2) { #if ___DEBUG Debug.Assert(node1 is RootNode || editorTree.ParseTree.ContainsElement(node1.Key)); if (!node1.ChildrenInvalidated) { Debug.Assert(node1.Children.Count == node2.Children.Count); } Debug.Assert(TextRange.AreEqual(node1.NameRange, node2.NameRange)); Debug.Assert(node1.Attributes.Count == node2.Attributes.Count); Debug.Assert(TextRange.AreEqual(node1.OuterRange, node2.OuterRange)); Debug.Assert(TextRange.AreEqual(node1.InnerRange, node2.InnerRange)); Debug.Assert(node1.Start == node2.Start); Debug.Assert(node1.End == node2.End); if (!node1.ChildrenInvalidated) { if (node1.Children.Count == node2.Children.Count) { for (int i = 0; i < node1.Children.Count; i++) { CompareNodes(editorTree, node1.Children[i], node2.Children[i]); } } } #endif }
public void TextRange_AreEqualTest() { TextRange r = TextRange.FromBounds(1, 2); TextRange r1 = TextRange.FromBounds(1, 2); TextRange.AreEqual(r, TextRange.EmptyRange).Should().BeFalse(); TextRange.AreEqual(r, r).Should().BeTrue(); TextRange.AreEqual(r, null).Should().BeFalse(); TextRange.AreEqual(null, r).Should().BeFalse(); TextRange.AreEqual(r, r1).Should().BeTrue(); }