@@ -138,6 +138,29 @@ func TestFunctionSwitchDictionary(t *testing.T) {
138138 wantDictionary : NewProfilesDictionary (),
139139 wantErr : errors .New ("invalid name index 1" ),
140140 },
141+ {
142+ name : "with a name index equal to the source table length (boundary condition)" ,
143+ function : func () Function {
144+ fn := NewFunction ()
145+ fn .SetNameStrindex (2 ) // Index 2 with length 2 (indices 0,1 are valid)
146+ return fn
147+ }(),
148+
149+ src : func () ProfilesDictionary {
150+ d := NewProfilesDictionary ()
151+ d .StringTable ().Append ("" , "test" ) // Length 2: indices 0,1 valid
152+ return d
153+ }(),
154+ dst : NewProfilesDictionary (),
155+
156+ wantFunction : func () Function {
157+ fn := NewFunction ()
158+ fn .SetNameStrindex (2 )
159+ return fn
160+ }(),
161+ wantDictionary : NewProfilesDictionary (),
162+ wantErr : errors .New ("invalid name index 2" ),
163+ },
141164 {
142165 name : "with an existing system name" ,
143166 function : func () Function {
@@ -187,6 +210,29 @@ func TestFunctionSwitchDictionary(t *testing.T) {
187210 wantDictionary : NewProfilesDictionary (),
188211 wantErr : errors .New ("invalid system name index 1" ),
189212 },
213+ {
214+ name : "with a system name index equal to the source table length (boundary condition)" ,
215+ function : func () Function {
216+ fn := NewFunction ()
217+ fn .SetSystemNameStrindex (2 )
218+ return fn
219+ }(),
220+
221+ src : func () ProfilesDictionary {
222+ d := NewProfilesDictionary ()
223+ d .StringTable ().Append ("" , "test" )
224+ return d
225+ }(),
226+ dst : NewProfilesDictionary (),
227+
228+ wantFunction : func () Function {
229+ fn := NewFunction ()
230+ fn .SetSystemNameStrindex (2 )
231+ return fn
232+ }(),
233+ wantDictionary : NewProfilesDictionary (),
234+ wantErr : errors .New ("invalid system name index 2" ),
235+ },
190236 {
191237 name : "with an existing filename" ,
192238 function : func () Function {
@@ -236,6 +282,29 @@ func TestFunctionSwitchDictionary(t *testing.T) {
236282 wantDictionary : NewProfilesDictionary (),
237283 wantErr : errors .New ("invalid filename index 1" ),
238284 },
285+ {
286+ name : "with a filename index equal to the source table length (boundary condition)" ,
287+ function : func () Function {
288+ fn := NewFunction ()
289+ fn .SetFilenameStrindex (2 )
290+ return fn
291+ }(),
292+
293+ src : func () ProfilesDictionary {
294+ d := NewProfilesDictionary ()
295+ d .StringTable ().Append ("" , "test" )
296+ return d
297+ }(),
298+ dst : NewProfilesDictionary (),
299+
300+ wantFunction : func () Function {
301+ fn := NewFunction ()
302+ fn .SetFilenameStrindex (2 )
303+ return fn
304+ }(),
305+ wantDictionary : NewProfilesDictionary (),
306+ wantErr : errors .New ("invalid filename index 2" ),
307+ },
239308 } {
240309 t .Run (tt .name , func (t * testing.T ) {
241310 fn := tt .function
0 commit comments