@@ -245,80 +245,111 @@ public void TestMultiLineCommentWithMultipleLines(string input, string expected)
245
245
}
246
246
}
247
247
248
- [ TestCase ( " -- qweqwe" , " qweqwe" ) ]
249
- [ TestCase ( " -- qwe\n qwe" , " qwe" ) ]
250
- public void TestDoubleDashSingleLineComment ( string input , string expected )
248
+ [ TestCase ( " -- qweqwe" , " qweqwe" , " " ) ]
249
+ [ TestCase ( " -- qwe\n qwe" , " qwe" , " \n qwe" ) ]
250
+ [ TestCase ( "asd -- qwe\n qwe" , " qwe" , "asd \n qwe" ) ]
251
+ public void TestDoubleDashSingleLineComment ( string input , string expectedComment , string expectedOther )
251
252
{
252
253
var source = new TextReaderSource ( new StringReader ( input ) ) ;
253
254
var reader = source . CreateReader ( ) ;
254
255
Assert . IsNotNull ( reader ) ;
255
256
256
- var content = new StringBuilder ( ) ;
257
- var writer = new StringWriter ( content )
257
+ var commentContent = new StringBuilder ( ) ;
258
+ var commentWriter = new StringWriter ( commentContent )
258
259
{
259
260
NewLine = "\n " ,
260
261
} ;
261
262
263
+ var otherContent = new StringBuilder ( ) ;
264
+ var otherWriter = new StringWriter ( otherContent )
265
+ {
266
+ NewLine = "\n " ,
267
+ } ;
268
+
269
+ var addNewLine = false ;
262
270
var rangeSearcher = new DoubleDashSingleLineComment ( ) ;
263
271
while ( reader != null )
264
272
{
273
+ if ( addNewLine )
274
+ otherWriter . WriteLine ( ) ;
275
+
265
276
var startIndex = rangeSearcher . FindStartCode ( reader ) ;
266
277
if ( startIndex == - 1 )
267
278
{
279
+ otherWriter . Write ( reader . ReadString ( reader . Length ) ) ;
280
+ addNewLine = true ;
268
281
reader = reader . Advance ( reader . Length ) ;
269
282
continue ;
270
283
}
271
284
285
+ otherWriter . Write ( reader . ReadString ( startIndex ) ) ;
272
286
reader = reader . Advance ( startIndex + rangeSearcher . StartCodeLength ) ;
273
287
Assert . IsNotNull ( reader ) ;
274
288
275
289
var endInfo = rangeSearcher . FindEndCode ( reader ) ;
276
290
Assert . IsNotNull ( endInfo ) ;
277
291
278
292
var contentLength = endInfo . Index - reader . Index ;
279
- writer . Write ( reader . ReadString ( contentLength ) ) ;
293
+ commentWriter . Write ( reader . ReadString ( contentLength ) ) ;
294
+ addNewLine = ( contentLength + rangeSearcher . EndCodeLength ) == reader . Length ;
280
295
reader = reader . Advance ( contentLength + rangeSearcher . EndCodeLength ) ;
281
296
}
282
297
283
- Assert . AreEqual ( expected , content . ToString ( ) ) ;
298
+ Assert . AreEqual ( expectedComment , commentContent . ToString ( ) ) ;
299
+ Assert . AreEqual ( expectedOther , otherContent . ToString ( ) ) ;
284
300
}
285
301
286
- [ TestCase ( " # qweqwe" , " qweqwe" ) ]
287
- [ TestCase ( " # qwe\n qwe" , " qwe" ) ]
288
- public void TestPoundSignSingleLineComment ( string input , string expected )
302
+ [ TestCase ( " # qweqwe" , " qweqwe" , " " ) ]
303
+ [ TestCase ( " # qwe\n qwe" , " qwe" , " \n qwe" ) ]
304
+ public void TestPoundSignSingleLineComment ( string input , string expectedComment , string expectedOther )
289
305
{
290
306
var source = new TextReaderSource ( new StringReader ( input ) ) ;
291
307
var reader = source . CreateReader ( ) ;
292
308
Assert . IsNotNull ( reader ) ;
293
309
294
- var content = new StringBuilder ( ) ;
295
- var writer = new StringWriter ( content )
310
+ var commentContent = new StringBuilder ( ) ;
311
+ var commentWriter = new StringWriter ( commentContent )
296
312
{
297
313
NewLine = "\n " ,
298
314
} ;
299
315
316
+ var otherContent = new StringBuilder ( ) ;
317
+ var otherWriter = new StringWriter ( otherContent )
318
+ {
319
+ NewLine = "\n " ,
320
+ } ;
321
+
322
+ var addNewLine = false ;
300
323
var rangeSearcher = new PoundSignSingleLineComment ( ) ;
301
324
while ( reader != null )
302
325
{
326
+ if ( addNewLine )
327
+ otherWriter . WriteLine ( ) ;
328
+
303
329
var startIndex = rangeSearcher . FindStartCode ( reader ) ;
304
330
if ( startIndex == - 1 )
305
331
{
332
+ otherWriter . Write ( reader . ReadString ( reader . Length ) ) ;
333
+ addNewLine = true ;
306
334
reader = reader . Advance ( reader . Length ) ;
307
335
continue ;
308
336
}
309
337
338
+ otherWriter . Write ( reader . ReadString ( startIndex ) ) ;
310
339
reader = reader . Advance ( startIndex + rangeSearcher . StartCodeLength ) ;
311
340
Assert . IsNotNull ( reader ) ;
312
341
313
342
var endInfo = rangeSearcher . FindEndCode ( reader ) ;
314
343
Assert . IsNotNull ( endInfo ) ;
315
344
316
345
var contentLength = endInfo . Index - reader . Index ;
317
- writer . Write ( reader . ReadString ( contentLength ) ) ;
346
+ commentWriter . Write ( reader . ReadString ( contentLength ) ) ;
347
+ addNewLine = ( contentLength + rangeSearcher . EndCodeLength ) == reader . Length ;
318
348
reader = reader . Advance ( contentLength + rangeSearcher . EndCodeLength ) ;
319
349
}
320
350
321
- Assert . AreEqual ( expected , content . ToString ( ) ) ;
351
+ Assert . AreEqual ( expectedComment , commentContent . ToString ( ) ) ;
352
+ Assert . AreEqual ( expectedOther , otherContent . ToString ( ) ) ;
322
353
}
323
354
324
355
[ Test ]
0 commit comments