public void TestNewlineNormalizerStream8bitWriting() { var newlinePermutations = new byte[][] { "\n".ToUtf8(), "\r".ToUtf8(), "\r\n".ToUtf8() }.Permutations(); foreach (var permutation in newlinePermutations) { var permutationArr = permutation.ToArray(); var bytes = "Line 1".ToUtf8().Concat(permutationArr[0]) .Concat("Line 2".ToUtf8()).Concat(permutationArr[1]) .Concat("Line 3".ToUtf8()).Concat(permutationArr[2]) .Concat("Line 4".ToUtf8()).ToArray(); for (int chunkSize1 = 1; chunkSize1 <= bytes.Length; chunkSize1++) { for (int chunkSize2 = 1; chunkSize2 < chunkSize1; chunkSize2++) { using (var str = new MemoryStream()) { using (var slowMaker1 = new SlowStream(str, chunkSize1)) using (var normaliser = new NewlineNormalizerStream8bit(slowMaker1, "<NL>".ToUtf8())) using (var slowMaker2 = new SlowStream(normaliser, chunkSize2)) slowMaker2.Write(bytes, 0, bytes.Length); Assert.AreEqual("Line 1<NL>Line 2<NL>Line 3<NL>Line 4", str.ToArray().FromUtf8()); } } } } }