44
55namespace PhpOffice \PhpSpreadsheetTests \Calculation ;
66
7- use PhpOffice \PhpSpreadsheet \Calculation \Calculation ;
87use PhpOffice \PhpSpreadsheet \Calculation \Internal \ExcelArrayPseudoFunctions ;
98use PhpOffice \PhpSpreadsheet \Spreadsheet ;
109use PHPUnit \Framework \Attributes \DataProvider ;
@@ -17,7 +16,7 @@ class InternalFunctionsTest extends TestCase
1716 public function testAnchorArrayFormula (string $ reference , string $ range , array $ expectedResult ): void
1817 {
1918 $ spreadsheet = new Spreadsheet ();
20- Calculation:: getInstance ( $ spreadsheet)-> setInstanceArrayReturnType (Calculation:: RETURN_ARRAY_AS_ARRAY );
19+ $ spreadsheet-> returnArrayAsArray ( );
2120 $ sheet1 = $ spreadsheet ->getActiveSheet ();
2221 $ sheet1 ->setTitle ('SheetOne ' ); // no space in sheet title
2322 $ sheet2 = $ spreadsheet ->createSheet ();
@@ -33,6 +32,8 @@ public function testAnchorArrayFormula(string $reference, string $range, array $
3332 self ::assertSame ($ expectedResult , $ result1 );
3433 $ attributes1 = $ sheet1 ->getCell ('A8 ' )->getFormulaAttributes ();
3534 self ::assertSame (['t ' => 'array ' , 'ref ' => $ range ], $ attributes1 );
35+ $ result = ExcelArrayPseudoFunctions::anchorArray ($ reference , $ sheet1 ->getCell ('A10 ' ));
36+ self ::assertSame ($ expectedResult , $ result , 'direct call agrees with evaluation on spredsheet ' );
3637 $ spreadsheet ->disconnectWorksheets ();
3738 }
3839
@@ -52,33 +53,11 @@ public static function anchorArrayDataProvider(): array
5253 ];
5354 }
5455
55- public function testAnchorArrayFormula2 (): void
56- {
57- // add a smidgen of coverage
58- $ reference = 'C3 ' ;
59- $ range = 'A8:C10 ' ;
60- $ expectedResult = [[-4 , -3 , -2 ], [-1 , 0 , 1 ], [2 , 3 , 4 ]];
61- $ spreadsheet = new Spreadsheet ();
62- $ spreadsheet ->returnArrayAsArray ();
63- $ sheet1 = $ spreadsheet ->getActiveSheet ();
64- $ sheet1 ->setTitle ('SheetOne ' ); // no space in sheet title
65- $ sheet2 = $ spreadsheet ->createSheet ();
66- $ sheet2 ->setTitle ('Sheet Two ' ); // space in sheet title
67-
68- $ sheet1 ->setCellValue ('C3 ' , '=SEQUENCE(3,3,-4) ' );
69- $ sheet2 ->setCellValue ('C3 ' , '=SEQUENCE(3,3, 9, -1) ' );
70- $ sheet1 ->calculateArrays ();
71- $ sheet2 ->calculateArrays ();
72- $ result = ExcelArrayPseudoFunctions::anchorArray ($ reference , $ sheet1 ->getCell ('A8 ' ));
73- self ::assertSame ($ expectedResult , $ result );
74- $ spreadsheet ->disconnectWorksheets ();
75- }
76-
7756 #[DataProvider('singleDataProvider ' )]
7857 public function testSingleArrayFormula (string $ reference , mixed $ expectedResult ): void
7958 {
8059 $ spreadsheet = new Spreadsheet ();
81- Calculation:: getInstance ( $ spreadsheet)-> setInstanceArrayReturnType (Calculation:: RETURN_ARRAY_AS_ARRAY );
60+ $ spreadsheet-> returnArrayAsArray ( );
8261 $ sheet1 = $ spreadsheet ->getActiveSheet ();
8362 $ sheet1 ->setTitle ('SheetOne ' ); // no space in sheet title
8463 $ sheet2 = $ spreadsheet ->createSheet ();
0 commit comments