@@ -190,163 +190,14 @@ func TestIterateColumnsEarlyTermination(t *testing.T) {
190
190
err = rows .IterateColumns (func (index int , cell string ) error {
191
191
collectedCells = append (collectedCells , cell )
192
192
if index == 1 {
193
- return fmt .Errorf ("stop" ) // stop at second column
193
+ return fmt .Errorf ("stop" )
194
194
}
195
195
return nil
196
196
})
197
197
assert .EqualError (t , err , "stop" )
198
198
assert .Equal (t , []string {"A1" , "B1" }, collectedCells )
199
199
}
200
200
201
- func TestIterateColumnsWithFormula (t * testing.T ) {
202
- f := NewFile ()
203
-
204
- // Test with formula cell
205
- assert .NoError (t , f .SetCellFormula ("Sheet1" , "A1" , "=1+2" ))
206
- assert .NoError (t , f .SetCellValue ("Sheet1" , "B1" , "text" ))
207
-
208
- rows , err := f .Rows ("Sheet1" )
209
- assert .NoError (t , err )
210
- defer rows .Close ()
211
-
212
- assert .True (t , rows .Next ())
213
-
214
- // Test normal mode
215
- var normalCells []string
216
- err = rows .IterateColumns (func (index int , cell string ) error {
217
- normalCells = append (normalCells , cell )
218
- return nil
219
- })
220
- assert .NoError (t , err )
221
- assert .Equal (t , 2 , len (normalCells ))
222
- assert .Equal (t , "text" , normalCells [1 ])
223
-
224
- // Test with Options parameter coverage
225
- rows2 , err := f .Rows ("Sheet1" )
226
- assert .NoError (t , err )
227
- defer rows2 .Close ()
228
- assert .True (t , rows2 .Next ())
229
-
230
- var rawCells []string
231
- err = rows2 .IterateColumns (func (index int , cell string ) error {
232
- rawCells = append (rawCells , cell )
233
- return nil
234
- }, Options {RawCellValue : true })
235
- assert .NoError (t , err )
236
- assert .True (t , len (rawCells ) >= 1 ) // Just ensure we get some cells
237
- }
238
-
239
- func TestIterateColumnsErrorCases (t * testing.T ) {
240
- f := NewFile ()
241
-
242
- // Test with invalid shared strings
243
- f .SharedStrings = nil
244
- f .Pkg .Store (defaultXMLPathSharedStrings , MacintoshCyrillicCharset )
245
-
246
- rows , err := f .Rows ("Sheet1" )
247
- assert .NoError (t , err )
248
- defer rows .Close ()
249
-
250
- // Test sharedStringsReader error path
251
- err = rows .IterateColumns (func (index int , cell string ) error {
252
- return nil
253
- })
254
- assert .EqualError (t , err , "XML syntax error on line 1: invalid UTF-8" )
255
- }
256
-
257
- func TestIterateColumnsSkipRows (t * testing.T ) {
258
- f := NewFile ()
259
- assert .NoError (t , f .SetCellValue ("Sheet1" , "A1" , "row1" ))
260
- assert .NoError (t , f .SetCellValue ("Sheet1" , "A2" , "row2" ))
261
-
262
- rows , err := f .Rows ("Sheet1" )
263
- assert .NoError (t , err )
264
- defer rows .Close ()
265
-
266
- // Skip first row
267
- assert .True (t , rows .Next ())
268
-
269
- // Move to second row
270
- assert .True (t , rows .Next ())
271
-
272
- var cells []string
273
- err = rows .IterateColumns (func (index int , cell string ) error {
274
- cells = append (cells , cell )
275
- return nil
276
- })
277
- assert .NoError (t , err )
278
- assert .Equal (t , []string {"row2" }, cells )
279
- }
280
-
281
- func TestIterateColumnsEmptyCallback (t * testing.T ) {
282
- f := NewFile ()
283
- assert .NoError (t , f .SetCellValue ("Sheet1" , "A1" , "" )) // Empty cell
284
- assert .NoError (t , f .SetCellValue ("Sheet1" , "B1" , "B1" ))
285
-
286
- rows , err := f .Rows ("Sheet1" )
287
- assert .NoError (t , err )
288
- defer rows .Close ()
289
-
290
- assert .True (t , rows .Next ())
291
-
292
- var cells []string
293
- var indices []int
294
- err = rows .IterateColumns (func (index int , cell string ) error {
295
- cells = append (cells , cell )
296
- indices = append (indices , index )
297
- // Test early termination in empty cell callback
298
- if index == 0 && cell == "" {
299
- return fmt .Errorf ("empty cell error" )
300
- }
301
- return nil
302
- })
303
- assert .EqualError (t , err , "empty cell error" )
304
- assert .Equal (t , []string {"" }, cells )
305
- assert .Equal (t , []int {0 }, indices )
306
- }
307
-
308
- func TestIterateColumnsBoundaryConditions (t * testing.T ) {
309
- f := NewFile ()
310
- assert .NoError (t , f .SetCellValue ("Sheet1" , "A1" , "A1" ))
311
-
312
- rows , err := f .Rows ("Sheet1" )
313
- assert .NoError (t , err )
314
- defer rows .Close ()
315
-
316
- // Test curRow > seekRow condition
317
- rows .curRow = 10
318
- rows .seekRow = 5
319
-
320
- err = rows .IterateColumns (func (index int , cell string ) error {
321
- t .Error ("Should not be called" )
322
- return nil
323
- })
324
- assert .NoError (t , err ) // Should return nil when curRow > seekRow
325
- }
326
-
327
- func TestIterateColumnsXMLStructure (t * testing.T ) {
328
- f := NewFile ()
329
-
330
- // Create test data to ensure XML structure coverage
331
- assert .NoError (t , f .SetCellValue ("Sheet1" , "A1" , "test" ))
332
- assert .NoError (t , f .SetCellFormula ("Sheet1" , "B1" , "=SUM(1,2)" ))
333
-
334
- rows , err := f .Rows ("Sheet1" )
335
- assert .NoError (t , err )
336
- defer rows .Close ()
337
-
338
- assert .True (t , rows .Next ())
339
-
340
- // This should exercise various XML parsing paths
341
- var cellCount int
342
- err = rows .IterateColumns (func (index int , cell string ) error {
343
- cellCount ++
344
- return nil
345
- })
346
- assert .NoError (t , err )
347
- assert .True (t , cellCount >= 2 )
348
- }
349
-
350
201
func TestRowHeight (t * testing.T ) {
351
202
f := NewFile ()
352
203
sheet1 := f .GetSheetName (0 )
0 commit comments