public void WritesArrays(byte[] items, byte[] encoding) { var stream = new MemoryStream(); var output = Expression.Parameter(typeof(Stream)); var item = Expression.Variable(typeof(byte)); var writeItem = Expression.Call(output, typeof(Stream).GetMethod(nameof(Stream.WriteByte)), item); var write = (Action <Stream>)Expression.Lambda(Codec.WriteArray(Expression.Constant(items), item, writeItem, output), new[] { output }).Compile(); using (stream) { write(stream); } Assert.Equal(encoding, stream.ToArray()); }