public void TemporaryBuffer_Add() { using var buffer = new TemporaryBuffer <int>(1); Assert.Equal(0, buffer.Count); buffer.Add(100); Assert.Equal(1, buffer.Count); Assert.True(buffer.EndsWith(100)); Assert.False(buffer.EndsWith(new [] { 100, 200 })); Assert.False(buffer.EndsWith(new [] { 100, 200, 300 })); Assert.Equal(100, buffer.Last()); buffer.Add(200); Assert.Equal(2, buffer.Count); Assert.False(buffer.EndsWith(100)); Assert.True(buffer.EndsWith(new [] { 100, 200 })); Assert.False(buffer.EndsWith(new [] { 100, 200, 300 })); Assert.Equal(200, buffer.Last()); buffer.DiscardLast(); Assert.Equal(1, buffer.Count); Assert.True(buffer.EndsWith(100)); Assert.False(buffer.EndsWith(new [] { 100, 200 })); Assert.False(buffer.EndsWith(new [] { 100, 200, 300 })); Assert.Equal(100, buffer.Last()); buffer.Add(200); buffer.Add(300); Assert.Equal(3, buffer.Count); Assert.False(buffer.EndsWith(100)); Assert.True(buffer.EndsWith(new [] { 200, 300 })); Assert.True(buffer.EndsWith(new [] { 100, 200, 300 })); Assert.Equal(300, buffer.Last()); }
public void TemporaryBuffer_CommitAfterDicard() { using var buffer = new TemporaryBuffer <int>(1) { 100, 200, 300 }; buffer.DiscardLast(); buffer.Add(700); buffer.Add(900); buffer.Discard(); var data = new List <int>(); buffer.Commit(data); Assert.Empty(data); }
public void TemporaryBuffer_Commit() { using var buffer = new TemporaryBuffer <int>(1) { 100, 200, 300 }; buffer.DiscardLast(); buffer.Add(700); buffer.Add(900); var data = new List <int>(); buffer.Commit(data); Assert.Equal(new List <int> { 100, 200, 700, 900 }, data); }
private State processNormalText(char ch) { switch (ch) { case '{': buffer.Add(ch); return(State.OpenCurlyBracket); case '[': buffer.Add(ch); return(State.OpenSquareBracket); case '<': buffer.Add(ch); return(State.OpenAngleBracket); default: output.Add(ch); return(State.NormalText); } }