public void GetChildAt(int index, int[] expected) { IEnumerable <VirtualTree <Node <int> > > nums = Enumerable .Range(0, 2) .Select(x => VirtualTree .New( new NodeWalker <int>(), Node .Create(x) .AddChildren( Enumerable .Range(0, 3) .Select(y => Node.Create(y)) .ToArray()))); Assert.Equal(expected, nums.GetChildAt(index).Unwrap().Select(x => x.Value).ToArray()); }
public void GetChildrenByKey_ArgumentComparerIsInvoked() { // Get a valid tree. var tree = TestTreeFactory.GetSimpleTree(); // Create a mock IComparer. Mock <IEqualityComparer <Node <int> > > mockComparer = new Mock <IEqualityComparer <Node <int> > >(); mockComparer .Setup(mock => mock.Equals(It.IsAny <Node <int> >(), It.IsAny <Node <int> >())) .Returns(true); // Create a VirtualTree. VirtualTree <Node <int> > vt = VirtualTree.New(new NodeWalker <int>(), tree); // Create a key to use for comparison. Any key is fine. Node <int> key = new Node <int>(0); // Execute the GetChildren. vt.GetChildren(key, mockComparer.Object).ToArray(); // Verify that the comparer argument was used. mockComparer.Verify(x => x.Equals(key, It.IsAny <Node <int> >()), Times.AtLeastOnce); }
public void GetDescendants_ByKey_PropetyComparerIsInvoked() { // Get a valid tree. var tree = TestTreeFactory.GetSimpleTree(); // Create a mock IComparer. Mock <IEqualityComparer <Node <int> > > mockComparer = new Mock <IEqualityComparer <Node <int> > >(); mockComparer .Setup(mock => mock.Equals(It.IsAny <Node <int> >(), It.IsAny <Node <int> >())) .Returns(true); // Create a VirtualTree. VirtualTree <Node <int> > vt = VirtualTree.New(new NodeWalker <int>(), tree, mockComparer.Object); // Create a key to use for comparison. Any key is fine. Node <int> key = new Node <int>(0); // Execute GetDescendants. vt.GetDescendants(key: key).ToArray(); // Verify that the VirtualTree's comparer was used. mockComparer.Verify(x => x.Equals(It.IsAny <Node <int> >(), It.IsAny <Node <int> >()), Times.Exactly(vt.GetDegree())); }