public void ShouldGoBackToFirstElement_WhenMovingByAnAmountEqualToTheLimit() { var iterator = new CircularIterator<string>("toto", "tata", "titi"); iterator.Move(iterator.Count); Assert.Equal("toto", iterator.Current); }
public void ShouldGoToSecondElement_WhenMovingByOneUnderTheLimit() { var iterator = new CircularIterator<string>("toto", "tata", "titi"); iterator.Move(1); Assert.Equal("tata", iterator.Current); }
static void Main() { LinkedList <int> intList = new LinkedList <int>(); for (int i = 1; i < 6; ++i) { intList.AddLast(i); } CircularIterator <int> iter = new CircularIterator <int>(intList, intList.First); int counter = 0; foreach (int n in iter) { Console.WriteLine(n); if (counter++ == 100) { iter.Stop(); } } }
public static void TestIEnumarable() { //Test custom simple collection with enumerator MyCollection <int> collection = new MyCollection <int>(new [] { 1, 2, 3, 4 }); Console.WriteLine("MyCollection: "); foreach (var n in collection) { Console.Write($"{n} "); } Console.WriteLine(); //Test Bidirectional iterator LinkedList <int> intList = new LinkedList <int>(); for (int i = 0; i < 6; i++) { intList.AddLast(i); } BidirectionalIterator <int> bidirectionalIterator = new BidirectionalIterator <int>(intList, intList.First, TIterationDirection.Forward); Console.WriteLine("Bidirectional iterator: "); foreach (var n in bidirectionalIterator) { Console.Write($"{n} "); if (n == 5) //change direction { bidirectionalIterator.Direction = TIterationDirection.Backward; } } Console.WriteLine(); //Test Circular iterator CircularIterator <int> circularIterator = new CircularIterator <int>(intList, intList.First); int counter = 0; Console.WriteLine("Circular iterator: "); foreach (var n in circularIterator) { Console.Write($"{n} "); if (counter++ == 20) { circularIterator.Stop(); } } }
public void ShouldStartOnFirstElement_WhenNotMoving() { var iterator = new CircularIterator<string>("toto", "tata", "titi"); Assert.Equal("toto", iterator.Current); }
public ThriftRoundRobinBalancer(IEnumerable <ThriftEndpoint> endpoints) { wrappedItems = new List <LoadBalancerItemWrapper <ThriftEndpoint> >(endpoints.Select(it => new LoadBalancerItemWrapper <ThriftEndpoint>(it))); iterator = new CircularIterator <LoadBalancerItemWrapper <ThriftEndpoint> >(wrappedItems); enabledCount = wrappedItems.Count; }