public void AllowsRepeatableTraversalWhileTraversingUnderlyingEnumeratorItemsAtMostOnce()
{
var tokens = new TokenStream(Tokens());
tokens.Current.ShouldEqual(upper, "ABC", 1, 1);
tokens.Advance().Current.ShouldEqual(lower, "def", 1, 4);
tokens.Advance().Advance().Current.ShouldEqual(upper, "GHI", 1, 7);
tokens.Advance().Advance().Advance().Current.ShouldEqual(TokenKind.EndOfInput, "", 1, 10);
tokens.Advance().ShouldBeSameAs(tokens.Advance());
}