@@ -1214,68 +1214,53 @@ public void TestGetAsciiStringEscaped(string input, string expected, int maxChar
1214
1214
}
1215
1215
}
1216
1216
1217
- [ Fact ]
1218
- public unsafe void TestCopyFromAscii ( )
1217
+ [ Theory ]
1218
+ [ InlineData ( 0 , MemoryPool . MaxPooledBlockLength * 3 + 64 ) ]
1219
+ public unsafe void TestCopyFromAscii ( int start , int end )
1220
+ {
1221
+ for ( var i = start ; i <= end ; i ++ )
1222
+ {
1223
+ TestCopyFromAscii ( i ) ;
1224
+ }
1225
+ }
1226
+
1227
+ private unsafe void TestCopyFromAscii ( int size )
1219
1228
{
1220
1229
// Arrange
1221
- var blockSingle = _pool . Lease ( ) ;
1222
- var blockMultiple = _pool . Lease ( ) ;
1230
+ var block = _pool . Lease ( ) ;
1223
1231
try
1224
1232
{
1225
- var dataSingle = new string ( '\0 ' , blockSingle . Data . Count - 1 ) ;
1226
- var dataMultiple = new string ( '\0 ' , blockMultiple . Data . Count * 4 - 1 ) ;
1233
+ var data = new string ( '\0 ' , size ) ;
1227
1234
1228
- fixed ( char * pData = dataSingle )
1229
- {
1230
- for ( var i = 0 ; i < dataSingle . Length ; i ++ )
1231
- {
1232
- // ascii chars 32 - 126
1233
- pData [ i ] = ( char ) ( ( i % ( 126 - 32 ) ) + 32 ) ;
1234
- }
1235
- }
1236
- fixed ( char * pData = dataMultiple )
1235
+ fixed ( char * pData = data )
1237
1236
{
1238
- for ( var i = 0 ; i < dataMultiple . Length ; i ++ )
1237
+ for ( var i = 0 ; i < data . Length ; i ++ )
1239
1238
{
1240
1239
// ascii chars 32 - 126
1241
1240
pData [ i ] = ( char ) ( ( i % ( 126 - 32 ) ) + 32 ) ;
1242
1241
}
1243
1242
}
1244
1243
1245
1244
// Act
1246
- var singleIter = blockSingle . GetIterator ( ) ;
1247
- var multiIter = blockMultiple . GetIterator ( ) ;
1245
+ var iter = block . GetIterator ( ) ;
1248
1246
1249
- var singleIterEnd = singleIter ;
1250
- var multiIterEnd = multiIter ;
1247
+ var iterEnd = iter ;
1251
1248
1252
- singleIterEnd . CopyFromAscii ( dataSingle ) ;
1253
- multiIterEnd . CopyFromAscii ( dataMultiple ) ;
1249
+ iterEnd . CopyFromAscii ( data ) ;
1254
1250
1255
1251
// Assert
1256
- Assert . True ( singleIterEnd . IsEnd ) ;
1257
- foreach ( var ch in dataSingle )
1258
- {
1259
- Assert . Equal ( ch , singleIter . Take ( ) ) ;
1260
- }
1261
- Assert . True ( singleIter . IsEnd ) ;
1262
- Assert . Equal ( singleIter . Block , singleIterEnd . Block ) ;
1263
- Assert . Equal ( singleIter . Index , singleIterEnd . Index ) ;
1264
-
1265
-
1266
- Assert . True ( multiIterEnd . IsEnd ) ;
1267
- foreach ( var ch in dataMultiple )
1252
+ Assert . True ( iterEnd . IsEnd ) ;
1253
+ foreach ( var ch in data )
1268
1254
{
1269
- Assert . Equal ( ch , multiIter . Take ( ) ) ;
1255
+ Assert . Equal ( ch , iter . Take ( ) ) ;
1270
1256
}
1271
- Assert . True ( multiIter . IsEnd ) ;
1272
- Assert . Equal ( multiIter . Block , multiIterEnd . Block ) ;
1273
- Assert . Equal ( multiIter . Index , multiIterEnd . Index ) ;
1257
+ Assert . True ( iter . IsEnd ) ;
1258
+ Assert . Equal ( iter . Block , iterEnd . Block ) ;
1259
+ Assert . Equal ( iter . Index , iterEnd . Index ) ;
1274
1260
}
1275
1261
finally
1276
1262
{
1277
- ReturnBlocks ( blockSingle ) ;
1278
- ReturnBlocks ( blockMultiple ) ;
1263
+ ReturnBlocks ( block ) ;
1279
1264
}
1280
1265
}
1281
1266
0 commit comments