@@ -519,4 +519,80 @@ public void ShouldInitializeWithCapacity()
519
519
520
520
builder . Capacity . ShouldBe ( 128 ) ;
521
521
}
522
+
523
+ [ Fact ]
524
+ public void IndexOf_WithOrdinalComparison_ReturnsMinus1ForCaseInsensitiveMatch ( )
525
+ {
526
+ using var builder = new ValueStringBuilder ( "Hello World" ) ;
527
+
528
+ var index = builder . IndexOf ( "world" , StringComparison . Ordinal ) ;
529
+
530
+ index . ShouldBe ( - 1 ) ;
531
+ }
532
+
533
+ [ Theory ]
534
+ [ InlineData ( StringComparison . OrdinalIgnoreCase ) ]
535
+ [ InlineData ( StringComparison . InvariantCultureIgnoreCase ) ]
536
+ public void IndexOf_WithCaseInsensitiveComparison_FindsMatchRegardlessOfCase ( StringComparison comparison )
537
+ {
538
+ using var builder = new ValueStringBuilder ( "Hello World" ) ;
539
+
540
+ var index = builder . IndexOf ( "world" , comparison ) ;
541
+
542
+ index . ShouldBe ( 6 ) ;
543
+ }
544
+
545
+ [ Fact ]
546
+ public void LastIndexOf_WithOrdinalComparison_ReturnsMinus1ForCaseInsensitiveMatch ( )
547
+ {
548
+ using var builder = new ValueStringBuilder ( "Hello World hello world" ) ;
549
+
550
+ var index = builder . LastIndexOf ( "WORLD" , StringComparison . InvariantCulture ) ;
551
+
552
+ index . ShouldBe ( - 1 ) ;
553
+ }
554
+
555
+ [ Theory ]
556
+ [ InlineData ( StringComparison . OrdinalIgnoreCase ) ]
557
+ [ InlineData ( StringComparison . InvariantCultureIgnoreCase ) ]
558
+ public void LastIndexOf_WithCaseInsensitiveComparison_FindsMatchRegardlessOfCase ( StringComparison comparison )
559
+ {
560
+ using var builder = new ValueStringBuilder ( "Hello World hello world" ) ;
561
+
562
+ var index = builder . LastIndexOf ( "WORLD" , comparison ) ;
563
+
564
+ index . ShouldBe ( 18 ) ;
565
+ }
566
+
567
+ [ Fact ]
568
+ public void LastIndexOf_WithStartIndexAndOrdinalComparison_ReturnsMinus1ForCaseInsensitiveMatch ( )
569
+ {
570
+ using var builder = new ValueStringBuilder ( "Hello World hello world" ) ;
571
+
572
+ var index = builder . LastIndexOf ( "WORLD" , 15 , StringComparison . Ordinal ) ;
573
+
574
+ index . ShouldBe ( - 1 ) ;
575
+ }
576
+
577
+ [ Fact ]
578
+ public void Contains_WithOrdinalComparison_ReturnsFalseForCaseInsensitiveMatch ( )
579
+ {
580
+ using var builder = new ValueStringBuilder ( "Hello World" ) ;
581
+
582
+ var contains = builder . Contains ( "WORLD" , StringComparison . Ordinal ) ;
583
+
584
+ contains . ShouldBe ( false ) ;
585
+ }
586
+
587
+ [ Theory ]
588
+ [ InlineData ( StringComparison . OrdinalIgnoreCase ) ]
589
+ [ InlineData ( StringComparison . InvariantCultureIgnoreCase ) ]
590
+ public void Contains_WithCaseInsensitiveComparison_FindsMatchRegardlessOfCase ( StringComparison comparison )
591
+ {
592
+ using var builder = new ValueStringBuilder ( "Hello World" ) ;
593
+
594
+ var contains = builder . Contains ( "WORLD" , comparison ) ;
595
+
596
+ contains . ShouldBe ( true ) ;
597
+ }
522
598
}
0 commit comments