Repository navigation
Expand file tree
/
Copy pathICSharpCode.SharpZipLib_StreamUtils.htm
More file actions
255 lines (255 loc) · 70.8 KB
/
Copy pathICSharpCode.SharpZipLib_StreamUtils.htm
File metadata and controls
255 lines (255 loc) · 70.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
<!DOCTYPE html>
<html data-ng-app="coverageApp">
<head>
<meta charset="utf-8" />
<title>ICSharpCode.SharpZipLib.Core.StreamUtils - Coverage Report</title>
<link rel="stylesheet" type="text/css" href="report.css" />
</head><body data-ng-controller="DetailViewCtrl"><div class="container">
<h1>Summary</h1>
<table class="overview">
<colgroup>
<col class="column135" />
<col />
</colgroup>
<tbody>
<tr><th>Class:</th><td>ICSharpCode.SharpZipLib.Core.StreamUtils</td></tr>
<tr><th>Assembly:</th><td>ICSharpCode.SharpZipLib</td></tr>
<tr><th>File(s):</th><td><a href="#CUsersNeilDocumentsVisualStudio2015ProjectsicsharpcodeSZL_masterICSharpCodeSharpZipLibCoreStreamUtilscs">C:\Users\Neil\Documents\Visual Studio 2015\Projects\icsharpcode\SZL_master\ICSharpCode.SharpZipLib\Core\StreamUtils.cs</a></td></tr>
<tr><th>Covered lines:</th><td>25</td></tr>
<tr><th>Uncovered lines:</th><td>53</td></tr>
<tr><th>Coverable lines:</th><td>78</td></tr>
<tr><th>Total lines:</th><td>208</td></tr>
<tr><th>Line coverage:</th><td>32%</td></tr>
<tr><th>Branch coverage:</th><td>34%</td></tr>
</tbody>
</table>
<h1>Metrics</h1>
<table class="overview">
<thead><tr><th>Method</th><th>Cyclomatic Complexity</th><th>Sequence Coverage</th><th>Branch Coverage</th></tr></thead>
<tbody>
<tr><td title="System.Void ICSharpCode.SharpZipLib.Core.StreamUtils::ReadFully(System.IO.Stream,System.Byte[])">ReadFully(...)</td><td>1</td><td>100</td><td>100</td></tr>
<tr><td title="System.Void ICSharpCode.SharpZipLib.Core.StreamUtils::ReadFully(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">ReadFully(...)</td><td>9</td><td>66.67</td><td>58.82</td></tr>
<tr><td title="System.Void ICSharpCode.SharpZipLib.Core.StreamUtils::Copy(System.IO.Stream,System.IO.Stream,System.Byte[])">Copy(...)</td><td>7</td><td>76.47</td><td>69.23</td></tr>
<tr><td title="System.Void ICSharpCode.SharpZipLib.Core.StreamUtils::Copy(System.IO.Stream,System.IO.Stream,System.Byte[],ICSharpCode.SharpZipLib.Core.ProgressHandler,System.TimeSpan,System.Object,System.String)">Copy(...)</td><td>1</td><td>0</td><td>0</td></tr>
<tr><td title="System.Void ICSharpCode.SharpZipLib.Core.StreamUtils::Copy(System.IO.Stream,System.IO.Stream,System.Byte[],ICSharpCode.SharpZipLib.Core.ProgressHandler,System.TimeSpan,System.Object,System.String,System.Int64)">Copy(...)</td><td>12</td><td>0</td><td>0</td></tr>
<tr><td title="System.Void ICSharpCode.SharpZipLib.Core.StreamUtils::.ctor()">.ctor()</td><td>1</td><td>0</td><td>0</td></tr>
</tbody>
</table>
<h1>File(s)</h1>
<h2 id="CUsersNeilDocumentsVisualStudio2015ProjectsicsharpcodeSZL_masterICSharpCodeSharpZipLibCoreStreamUtilscs">C:\Users\Neil\Documents\Visual Studio 2015\Projects\icsharpcode\SZL_master\ICSharpCode.SharpZipLib\Core\StreamUtils.cs</h2>
<table class="lineAnalysis">
<thead><tr><th></th><th>#</th><th>Line</th><th></th><th>Line coverage</th></tr></thead>
<tbody>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>1</code></td><td></td><td class="lightgray"><code>using System;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>2</code></td><td></td><td class="lightgray"><code>using System.IO;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>3</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>4</code></td><td></td><td class="lightgray"><code>namespace ICSharpCode.SharpZipLib.Core</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>5</code></td><td></td><td class="lightgray"><code>{</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>6</code></td><td></td><td class="lightgray"><code> /// <summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>7</code></td><td></td><td class="lightgray"><code> /// Provides simple <see cref="Stream"/>" utilities.</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>8</code></td><td></td><td class="lightgray"><code> /// </summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>9</code></td><td></td><td class="lightgray"><code> public sealed class StreamUtils</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>10</code></td><td></td><td class="lightgray"><code> {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>11</code></td><td></td><td class="lightgray"><code> /// <summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>12</code></td><td></td><td class="lightgray"><code> /// Read from a <see cref="Stream"/> ensuring all the required data is read.</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>13</code></td><td></td><td class="lightgray"><code> /// </summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>14</code></td><td></td><td class="lightgray"><code> /// <param name="stream">The stream to read.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>15</code></td><td></td><td class="lightgray"><code> /// <param name="buffer">The buffer to fill.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>16</code></td><td></td><td class="lightgray"><code> /// <seealso cref="ReadFully(Stream,byte[],int,int)"/></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>17</code></td><td></td><td class="lightgray"><code> static public void ReadFully(Stream stream, byte[] buffer)</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>18</code></td><td></td><td class="lightgray"><code> {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '263789', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">263789</td><td class="rightmargin right"><code>19</code></td><td></td><td class="lightgreen"><code> ReadFully(stream, buffer, 0, buffer.Length);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '263789', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">263789</td><td class="rightmargin right"><code>20</code></td><td></td><td class="lightgreen"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>21</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>22</code></td><td></td><td class="lightgray"><code> /// <summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>23</code></td><td></td><td class="lightgray"><code> /// Read from a <see cref="Stream"/>" ensuring all the required data is read.</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>24</code></td><td></td><td class="lightgray"><code> /// </summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>25</code></td><td></td><td class="lightgray"><code> /// <param name="stream">The stream to read data from.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>26</code></td><td></td><td class="lightgray"><code> /// <param name="buffer">The buffer to store data in.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>27</code></td><td></td><td class="lightgray"><code> /// <param name="offset">The offset at which to begin storing data.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>28</code></td><td></td><td class="lightgray"><code> /// <param name="count">The number of bytes of data to store.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>29</code></td><td></td><td class="lightgray"><code> /// <exception cref="ArgumentNullException">Required parameter is null</exception></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>30</code></td><td></td><td class="lightgray"><code> /// <exception cref="ArgumentOutOfRangeException"><paramref name="offset"/> and or <paramref name="count"/> are inva</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>31</code></td><td></td><td class="lightgray"><code> /// <exception cref="EndOfStreamException">End of stream is encountered before all the data has been read.</exceptio</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>32</code></td><td></td><td class="lightgray"><code> static public void ReadFully(Stream stream, byte[] buffer, int offset, int count)</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>33</code></td><td></td><td class="lightgray"><code> {</code></td></tr>
<tr title="1 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '329745', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">329745</td><td class="rightmargin right"><code>34</code></td><td class="branch50"> </td><td class="lightgreen"><code> if (stream == null) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>35</code></td><td></td><td class="lightred"><code> throw new ArgumentNullException(nameof(stream));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>36</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>37</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="1 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '329745', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">329745</td><td class="rightmargin right"><code>38</code></td><td class="branch50"> </td><td class="lightgreen"><code> if (buffer == null) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>39</code></td><td></td><td class="lightred"><code> throw new ArgumentNullException(nameof(buffer));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>40</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>41</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>42</code></td><td></td><td class="lightgray"><code> // Offset can equal length when buffer and count are 0.</code></td></tr>
<tr title="2 of 4 branches are covered" data-coverage="{'AllTestMethods': {'VC': '329745', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">329745</td><td class="rightmargin right"><code>43</code></td><td class="branch50"> </td><td class="lightgreen"><code> if ((offset < 0) || (offset > buffer.Length)) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>44</code></td><td></td><td class="lightred"><code> throw new ArgumentOutOfRangeException(nameof(offset));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>45</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>46</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="2 of 4 branches are covered" data-coverage="{'AllTestMethods': {'VC': '329745', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">329745</td><td class="rightmargin right"><code>47</code></td><td class="branch50"> </td><td class="lightgreen"><code> if ((count < 0) || (offset + count > buffer.Length)) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>48</code></td><td></td><td class="lightred"><code> throw new ArgumentOutOfRangeException(nameof(count));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>49</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>50</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="2 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '527678', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">527678</td><td class="rightmargin right"><code>51</code></td><td class="branch100"> </td><td class="lightgreen"><code> while (count > 0) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '197933', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">197933</td><td class="rightmargin right"><code>52</code></td><td></td><td class="lightgreen"><code> int readCount = stream.Read(buffer, offset, count);</code></td></tr>
<tr title="1 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '197933', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">197933</td><td class="rightmargin right"><code>53</code></td><td class="branch50"> </td><td class="lightgreen"><code> if (readCount <= 0) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>54</code></td><td></td><td class="lightred"><code> throw new EndOfStreamException();</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>55</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '197933', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">197933</td><td class="rightmargin right"><code>56</code></td><td></td><td class="lightgreen"><code> offset += readCount;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '197933', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">197933</td><td class="rightmargin right"><code>57</code></td><td></td><td class="lightgreen"><code> count -= readCount;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>58</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '329745', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">329745</td><td class="rightmargin right"><code>59</code></td><td></td><td class="lightgreen"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>60</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>61</code></td><td></td><td class="lightgray"><code> /// <summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>62</code></td><td></td><td class="lightgray"><code> /// Copy the contents of one <see cref="Stream"/> to another.</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>63</code></td><td></td><td class="lightgray"><code> /// </summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>64</code></td><td></td><td class="lightgray"><code> /// <param name="source">The stream to source data from.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>65</code></td><td></td><td class="lightgray"><code> /// <param name="destination">The stream to write data to.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>66</code></td><td></td><td class="lightgray"><code> /// <param name="buffer">The buffer to use during copying.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>67</code></td><td></td><td class="lightgray"><code> static public void Copy(Stream source, Stream destination, byte[] buffer)</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>68</code></td><td></td><td class="lightgray"><code> {</code></td></tr>
<tr title="1 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '8', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">8</td><td class="rightmargin right"><code>69</code></td><td class="branch50"> </td><td class="lightgreen"><code> if (source == null) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>70</code></td><td></td><td class="lightred"><code> throw new ArgumentNullException(nameof(source));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>71</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>72</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="1 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '8', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">8</td><td class="rightmargin right"><code>73</code></td><td class="branch50"> </td><td class="lightgreen"><code> if (destination == null) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>74</code></td><td></td><td class="lightred"><code> throw new ArgumentNullException(nameof(destination));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>75</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>76</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="1 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '8', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">8</td><td class="rightmargin right"><code>77</code></td><td class="branch50"> </td><td class="lightgreen"><code> if (buffer == null) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>78</code></td><td></td><td class="lightred"><code> throw new ArgumentNullException(nameof(buffer));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>79</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>80</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>81</code></td><td></td><td class="lightgray"><code> // Ensure a reasonable size of buffer is used without being prohibitive.</code></td></tr>
<tr title="1 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '8', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">8</td><td class="rightmargin right"><code>82</code></td><td class="branch50"> </td><td class="lightgreen"><code> if (buffer.Length < 128) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>83</code></td><td></td><td class="lightred"><code> throw new ArgumentException("Buffer is too small", nameof(buffer));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>84</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>85</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '8', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">8</td><td class="rightmargin right"><code>86</code></td><td></td><td class="lightgreen"><code> bool copying = true;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>87</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="2 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '24', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">24</td><td class="rightmargin right"><code>88</code></td><td class="branch100"> </td><td class="lightgreen"><code> while (copying) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '16', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">16</td><td class="rightmargin right"><code>89</code></td><td></td><td class="lightgreen"><code> int bytesRead = source.Read(buffer, 0, buffer.Length);</code></td></tr>
<tr title="2 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '16', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">16</td><td class="rightmargin right"><code>90</code></td><td class="branch100"> </td><td class="lightgreen"><code> if (bytesRead > 0) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '8', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">8</td><td class="rightmargin right"><code>91</code></td><td></td><td class="lightgreen"><code> destination.Write(buffer, 0, bytesRead);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '8', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">8</td><td class="rightmargin right"><code>92</code></td><td></td><td class="lightgreen"><code> } else {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '8', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">8</td><td class="rightmargin right"><code>93</code></td><td></td><td class="lightgreen"><code> destination.Flush();</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '8', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">8</td><td class="rightmargin right"><code>94</code></td><td></td><td class="lightgreen"><code> copying = false;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>95</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>96</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '8', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">8</td><td class="rightmargin right"><code>97</code></td><td></td><td class="lightgreen"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>98</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>99</code></td><td></td><td class="lightgray"><code> /// <summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>100</code></td><td></td><td class="lightgray"><code> /// Copy the contents of one <see cref="Stream"/> to another.</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>101</code></td><td></td><td class="lightgray"><code> /// </summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>102</code></td><td></td><td class="lightgray"><code> /// <param name="source">The stream to source data from.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>103</code></td><td></td><td class="lightgray"><code> /// <param name="destination">The stream to write data to.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>104</code></td><td></td><td class="lightgray"><code> /// <param name="buffer">The buffer to use during copying.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>105</code></td><td></td><td class="lightgray"><code> /// <param name="progressHandler">The <see cref="ProgressHandler">progress handler delegate</see> to use.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>106</code></td><td></td><td class="lightgray"><code> /// <param name="updateInterval">The minimum <see cref="TimeSpan"/> between progress updates.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>107</code></td><td></td><td class="lightgray"><code> /// <param name="sender">The source for this event.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>108</code></td><td></td><td class="lightgray"><code> /// <param name="name">The name to use with the event.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>109</code></td><td></td><td class="lightgray"><code> /// <remarks>This form is specialised for use within #Zip to support events during archive operations.</remarks></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>110</code></td><td></td><td class="lightgray"><code> static public void Copy(Stream source, Stream destination,</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>111</code></td><td></td><td class="lightgray"><code> byte[] buffer, ProgressHandler progressHandler, TimeSpan updateInterval, object sender, string name)</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>112</code></td><td></td><td class="lightgray"><code> {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>113</code></td><td></td><td class="lightred"><code> Copy(source, destination, buffer, progressHandler, updateInterval, sender, name, -1);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>114</code></td><td></td><td class="lightred"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>115</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>116</code></td><td></td><td class="lightgray"><code> /// <summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>117</code></td><td></td><td class="lightgray"><code> /// Copy the contents of one <see cref="Stream"/> to another.</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>118</code></td><td></td><td class="lightgray"><code> /// </summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>119</code></td><td></td><td class="lightgray"><code> /// <param name="source">The stream to source data from.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>120</code></td><td></td><td class="lightgray"><code> /// <param name="destination">The stream to write data to.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>121</code></td><td></td><td class="lightgray"><code> /// <param name="buffer">The buffer to use during copying.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>122</code></td><td></td><td class="lightgray"><code> /// <param name="progressHandler">The <see cref="ProgressHandler">progress handler delegate</see> to use.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>123</code></td><td></td><td class="lightgray"><code> /// <param name="updateInterval">The minimum <see cref="TimeSpan"/> between progress updates.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>124</code></td><td></td><td class="lightgray"><code> /// <param name="sender">The source for this event.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>125</code></td><td></td><td class="lightgray"><code> /// <param name="name">The name to use with the event.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>126</code></td><td></td><td class="lightgray"><code> /// <param name="fixedTarget">A predetermined fixed target value to use with progress updates.</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>127</code></td><td></td><td class="lightgray"><code> /// If the value is negative the target is calculated by looking at the stream.</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>128</code></td><td></td><td class="lightgray"><code> /// <remarks>This form is specialised for use within #Zip to support events during archive operations.</remarks></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>129</code></td><td></td><td class="lightgray"><code> static public void Copy(Stream source, Stream destination,</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>130</code></td><td></td><td class="lightgray"><code> byte[] buffer,</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>131</code></td><td></td><td class="lightgray"><code> ProgressHandler progressHandler, TimeSpan updateInterval,</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>132</code></td><td></td><td class="lightgray"><code> object sender, string name, long fixedTarget)</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>133</code></td><td></td><td class="lightgray"><code> {</code></td></tr>
<tr title="0 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>134</code></td><td class="branch0"> </td><td class="lightred"><code> if (source == null) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>135</code></td><td></td><td class="lightred"><code> throw new ArgumentNullException(nameof(source));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>136</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>137</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="0 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>138</code></td><td class="branch0"> </td><td class="lightred"><code> if (destination == null) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>139</code></td><td></td><td class="lightred"><code> throw new ArgumentNullException(nameof(destination));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>140</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>141</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="0 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>142</code></td><td class="branch0"> </td><td class="lightred"><code> if (buffer == null) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>143</code></td><td></td><td class="lightred"><code> throw new ArgumentNullException(nameof(buffer));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>144</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>145</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>146</code></td><td></td><td class="lightgray"><code> // Ensure a reasonable size of buffer is used without being prohibitive.</code></td></tr>
<tr title="0 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>147</code></td><td class="branch0"> </td><td class="lightred"><code> if (buffer.Length < 128) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>148</code></td><td></td><td class="lightred"><code> throw new ArgumentException("Buffer is too small", nameof(buffer));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>149</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>150</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="0 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>151</code></td><td class="branch0"> </td><td class="lightred"><code> if (progressHandler == null) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>152</code></td><td></td><td class="lightred"><code> throw new ArgumentNullException(nameof(progressHandler));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>153</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>154</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>155</code></td><td></td><td class="lightred"><code> bool copying = true;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>156</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>157</code></td><td></td><td class="lightred"><code> DateTime marker = DateTime.Now;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>158</code></td><td></td><td class="lightred"><code> long processed = 0;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>159</code></td><td></td><td class="lightred"><code> long target = 0;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>160</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="0 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>161</code></td><td class="branch0"> </td><td class="lightred"><code> if (fixedTarget >= 0) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>162</code></td><td></td><td class="lightred"><code> target = fixedTarget;</code></td></tr>
<tr title="0 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>163</code></td><td class="branch0"> </td><td class="lightred"><code> } else if (source.CanSeek) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>164</code></td><td></td><td class="lightred"><code> target = source.Length - source.Position;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>165</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>166</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>167</code></td><td></td><td class="lightgray"><code> // Always fire 0% progress..</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>168</code></td><td></td><td class="lightred"><code> var args = new ProgressEventArgs(name, processed, target);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>169</code></td><td></td><td class="lightred"><code> progressHandler(sender, args);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>170</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>171</code></td><td></td><td class="lightred"><code> bool progressFired = true;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>172</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="0 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>173</code></td><td class="branch0"> </td><td class="lightred"><code> while (copying) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>174</code></td><td></td><td class="lightred"><code> int bytesRead = source.Read(buffer, 0, buffer.Length);</code></td></tr>
<tr title="0 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>175</code></td><td class="branch0"> </td><td class="lightred"><code> if (bytesRead > 0) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>176</code></td><td></td><td class="lightred"><code> processed += bytesRead;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>177</code></td><td></td><td class="lightred"><code> progressFired = false;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>178</code></td><td></td><td class="lightred"><code> destination.Write(buffer, 0, bytesRead);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>179</code></td><td></td><td class="lightred"><code> } else {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>180</code></td><td></td><td class="lightred"><code> destination.Flush();</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>181</code></td><td></td><td class="lightred"><code> copying = false;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>182</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>183</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="0 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>184</code></td><td class="branch0"> </td><td class="lightred"><code> if (DateTime.Now - marker > updateInterval) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>185</code></td><td></td><td class="lightred"><code> progressFired = true;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>186</code></td><td></td><td class="lightred"><code> marker = DateTime.Now;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>187</code></td><td></td><td class="lightred"><code> args = new ProgressEventArgs(name, processed, target);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>188</code></td><td></td><td class="lightred"><code> progressHandler(sender, args);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>189</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>190</code></td><td></td><td class="lightred"><code> copying = args.ContinueRunning;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>191</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>192</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>193</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr title="0 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>194</code></td><td class="branch0"> </td><td class="lightred"><code> if (!progressFired) {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>195</code></td><td></td><td class="lightred"><code> args = new ProgressEventArgs(name, processed, target);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>196</code></td><td></td><td class="lightred"><code> progressHandler(sender, args);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>197</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>198</code></td><td></td><td class="lightred"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>199</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>200</code></td><td></td><td class="lightgray"><code> /// <summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>201</code></td><td></td><td class="lightgray"><code> /// Initialise an instance of <see cref="StreamUtils"></see></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>202</code></td><td></td><td class="lightgray"><code> /// </summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>203</code></td><td></td><td class="lightred"><code> private StreamUtils()</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>204</code></td><td></td><td class="lightgray"><code> {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>205</code></td><td></td><td class="lightgray"><code> // Do nothing.</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><code>206</code></td><td></td><td class="lightred"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>207</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>208</code></td><td></td><td class="lightgray"><code>}</code></td></tr>
</tbody>
</table>
<div class="footer">Generated by: ReportGenerator 2.4.5.0<br />5/17/2016 - 5:03:18 PM<br /><a href="https://github.com/danielpalme/ReportGenerator">GitHub</a> | <a href="http://www.palmmedia.de">www.palmmedia.de</a></div></div>
<script type="text/javascript" src="combined.js"></script>
</body></html>