@@ -6303,6 +6303,43 @@ func TestCalcBetainvProbIterator(t *testing.T) {
6303
6303
assert .Equal (t , 1.0 , betainvProbIterator (1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ))
6304
6304
}
6305
6305
6306
+ func TestCalcRangeResolver (t * testing.T ) {
6307
+ f := NewFile ()
6308
+ assert .NoError (t , f .SetCellFormula ("Sheet1" , "A1" , "=SUM(Sheet1!B:B)" ))
6309
+ cellRefs := list .New ()
6310
+ cellRanges := list .New ()
6311
+ // Test extract value from ranges on invalid ranges
6312
+ cellRanges .PushBack (cellRange {
6313
+ From : cellRef {Col : 1 , Row : 1 , Sheet : "SheetN" },
6314
+ To : cellRef {Col : 1 , Row : TotalRows , Sheet : "SheetN" },
6315
+ })
6316
+ _ , err := f .rangeResolver (& calcContext {}, cellRefs , cellRanges )
6317
+ assert .EqualError (t , err , "sheet SheetN does not exist" )
6318
+
6319
+ ws , err := f .workSheetReader ("Sheet1" )
6320
+ ws .SheetData .Row = make ([]xlsxRow , TotalRows + 1 )
6321
+ ws .SheetData .Row [TotalRows ].C = make ([]xlsxC , 3 )
6322
+ assert .NoError (t , err )
6323
+ cellRanges .Init ()
6324
+ cellRanges .PushBack (cellRange {
6325
+ From : cellRef {Col : 3 , Row : TotalRows , Sheet : "Sheet1" },
6326
+ To : cellRef {Col : 3 , Row : TotalRows + 1 , Sheet : "Sheet1" },
6327
+ })
6328
+ _ , err = f .rangeResolver (& calcContext {}, cellRefs , cellRanges )
6329
+ assert .Equal (t , ErrMaxRows , err )
6330
+
6331
+ // Test extract value from references with invalid references
6332
+ cellRanges .Init ()
6333
+ cellRefs .PushBack (cellRef {Col : 1 , Row : 1 , Sheet : "SheetN" })
6334
+ _ , err = f .rangeResolver (& calcContext {}, cellRefs , cellRanges )
6335
+ assert .EqualError (t , err , "sheet SheetN does not exist" )
6336
+
6337
+ cellRefs .Init ()
6338
+ cellRefs .PushBack (cellRef {Col : 1 , Row : TotalRows + 1 , Sheet : "SheetN" })
6339
+ _ , err = f .rangeResolver (& calcContext {}, cellRefs , cellRanges )
6340
+ assert .Equal (t , ErrMaxRows , err )
6341
+ }
6342
+
6306
6343
func TestNestedFunctionsWithOperators (t * testing.T ) {
6307
6344
f := NewFile ()
6308
6345
formulaList := map [string ]string {
0 commit comments