@@ -73,5 +73,51 @@ public void StringBuilderTextObjectExtensions_ViFindBeginningOfNextWordObjectBou
73
73
Assert . Equal ( 46 , buffer . ViFindBeginningOfNextWordObjectBoundary ( 45 , wordDelimiters ) ) ;
74
74
Assert . Equal ( 50 , buffer . ViFindBeginningOfNextWordObjectBoundary ( 46 , wordDelimiters ) ) ;
75
75
}
76
+
77
+ [ Theory ]
78
+ [ InlineData ( '\' ' ) ]
79
+ [ InlineData ( '\" ' ) ]
80
+ public void StringBuilderTextObjectExtensions_ViFindSpanOfInnerQuotedTextObjectBoundary ( char delimiter )
81
+ {
82
+ var buffer = new StringBuilder ( $ "_{ delimiter } _{ delimiter } { delimiter } _{ delimiter } { delimiter } _{ delimiter } ") ;
83
+
84
+ // text: _"_" "_" "_"
85
+ // position: 012345678901
86
+ // - 1
87
+ // boundary: 111135557888
88
+
89
+ // when invoked once, the span is within the quotes
90
+
91
+ Assert . Equal ( ( 2 , 3 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 0 , repeated : 1 ) ) ;
92
+ Assert . Equal ( ( 2 , 3 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 1 , repeated : 1 ) ) ;
93
+ Assert . Equal ( ( 2 , 3 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 2 , repeated : 1 ) ) ;
94
+ Assert . Equal ( ( 2 , 3 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 3 , repeated : 1 ) ) ;
95
+ Assert . Equal ( ( 4 , 5 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 4 , repeated : 1 ) ) ;
96
+ Assert . Equal ( ( 6 , 7 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 5 , repeated : 1 ) ) ;
97
+ Assert . Equal ( ( 6 , 7 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 6 , repeated : 1 ) ) ;
98
+ Assert . Equal ( ( 6 , 7 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 7 , repeated : 1 ) ) ;
99
+ Assert . Equal ( ( 8 , 9 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 8 , repeated : 1 ) ) ;
100
+ Assert . Equal ( ( 10 , 11 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 9 , repeated : 1 ) ) ;
101
+ Assert . Equal ( ( 10 , 11 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 10 , repeated : 1 ) ) ;
102
+ Assert . Equal ( ( 10 , 11 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 11 , repeated : 1 ) ) ;
103
+ Assert . Equal ( ( 10 , 11 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 12 , repeated : 1 ) ) ;
104
+
105
+ // when invoked more than once, the span is around the quotes
106
+
107
+ Assert . Equal ( ( 1 , 4 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 0 , repeated : 42 ) ) ;
108
+ Assert . Equal ( ( 1 , 4 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 1 , repeated : 42 ) ) ;
109
+ Assert . Equal ( ( 1 , 4 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 2 , repeated : 42 ) ) ;
110
+ Assert . Equal ( ( 1 , 4 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 3 , repeated : 42 ) ) ;
111
+ Assert . Equal ( ( 3 , 6 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 4 , repeated : 42 ) ) ;
112
+ Assert . Equal ( ( 5 , 8 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 5 , repeated : 42 ) ) ;
113
+ Assert . Equal ( ( 5 , 8 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 6 , repeated : 42 ) ) ;
114
+ Assert . Equal ( ( 5 , 8 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 7 , repeated : 42 ) ) ;
115
+ Assert . Equal ( ( 7 , 10 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 8 , repeated : 42 ) ) ;
116
+ Assert . Equal ( ( 9 , 12 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 9 , repeated : 42 ) ) ;
117
+ Assert . Equal ( ( 9 , 12 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 10 , repeated : 42 ) ) ;
118
+ Assert . Equal ( ( 9 , 12 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 11 , repeated : 42 ) ) ;
119
+ Assert . Equal ( ( 9 , 12 ) , buffer . ViFindSpanOfInnerQuotedTextObjectBoundary ( delimiter , 12 , repeated : 42 ) ) ;
120
+
121
+ }
76
122
}
77
123
}
0 commit comments