@@ -6303,6 +6303,43 @@ func TestCalcBetainvProbIterator(t *testing.T) {
63036303 assert .Equal (t , 1.0 , betainvProbIterator (1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ))
63046304}
63056305
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+
63066343func TestNestedFunctionsWithOperators (t * testing.T ) {
63076344 f := NewFile ()
63086345 formulaList := map [string ]string {
0 commit comments