public void TokenStream_Can_Iterate_Over_Collection() { List<Token> tokens = new List<Token> { new Token(TokenType.Numeric, 1D), new Token(TokenType.Addition, "+"), new Token(TokenType.Numeric, 2D) }; TokenStream stream = new TokenStream(tokens, TokenNotation.Infix); var enumerator = stream.GetEnumerator(); List<Token> result = new List<Token>(); while (enumerator.MoveNext()) { result.Add(enumerator.Current); } Assert.AreEqual(3, result.Count); Assert.AreEqual(1, (double)result[0].Value); Assert.AreEqual(TokenType.Addition, result[1].Type); Assert.AreEqual(2, (double)result[2].Value); }