private void DumpNodeSequence (JSNodeChildrenRecursive enumerable) { using (var e = enumerable.GetEnumerator()) while (e.MoveNext()) Console.WriteLine("{0} << {1} >>", e.Current.GetType(), e.Current); var nonDistinct = enumerable.ToArray(); var distinct = nonDistinct.Distinct(new ReferenceComparer<JSNode>()).ToArray(); Assert.AreEqual(distinct.Length, nonDistinct.Length, "Enumeration contains duplicates"); }
protected JSNode() { TypeId = GetTypeId(GetType()); var td = JSNodeTraversalData.Get(TypeId); Children = new JSNodeChildren(this, td, false); SelfAndChildren = new JSNodeChildren(this, td, true); AllChildrenRecursive = new JSNodeChildrenRecursive(this, td, false); SelfAndChildrenRecursive = new JSNodeChildrenRecursive(this, td, true); }
public JSNode() { TypeId = TypeIds[GetType()]; var td = JSNodeTraversalData.Get(TypeId); Children = new JSNodeChildren(this, td, false); SelfAndChildren = new JSNodeChildren(this, td, true); AllChildrenRecursive = new JSNodeChildrenRecursive(this, td, false); SelfAndChildrenRecursive = new JSNodeChildrenRecursive(this, td, true); }