136 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			136 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | namespace PhpOffice\PhpSpreadsheetTests; | ||
|  | 
 | ||
|  | use PhpOffice\PhpSpreadsheet\Calculation\Category as Cat; | ||
|  | use PhpOffice\PhpSpreadsheet\Calculation\Functions; | ||
|  | use PhpOffice\PhpSpreadsheet\Calculation\Logical; | ||
|  | use PhpOffice\PhpSpreadsheet\DocumentGenerator; | ||
|  | use PHPUnit\Framework\TestCase; | ||
|  | 
 | ||
|  | class DocumentGeneratorTest extends TestCase | ||
|  | { | ||
|  |     /** | ||
|  |      * @dataProvider providerGenerateFunctionListByName | ||
|  |      */ | ||
|  |     public function testGenerateFunctionListByName(array $phpSpreadsheetFunctions, string $expected): void | ||
|  |     { | ||
|  |         self::assertEquals($expected, DocumentGenerator::generateFunctionListByName($phpSpreadsheetFunctions)); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @dataProvider providerGenerateFunctionListByCategory | ||
|  |      */ | ||
|  |     public function testGenerateFunctionListByCategory(array $phpSpreadsheetFunctions, string $expected): void | ||
|  |     { | ||
|  |         self::assertEquals($expected, DocumentGenerator::generateFunctionListByCategory($phpSpreadsheetFunctions)); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function providerGenerateFunctionListByName(): array | ||
|  |     { | ||
|  |         return [ | ||
|  |             [ | ||
|  |                 [ | ||
|  |                     'ABS' => ['category' => Cat::CATEGORY_MATH_AND_TRIG, 'functionCall' => 'abs'], | ||
|  |                     'AND' => ['category' => Cat::CATEGORY_LOGICAL, 'functionCall' => [Logical::class, 'logicalAnd']], | ||
|  |                     'IFS' => ['category' => Cat::CATEGORY_LOGICAL, 'functionCall' => [Functions::class, 'DUMMY']], | ||
|  |                 ], | ||
|  |                 <<<'EXPECTED' | ||
|  | # Function list by name
 | ||
|  | 
 | ||
|  | ## A
 | ||
|  | 
 | ||
|  | Excel Function      | Category                       | PhpSpreadsheet Function
 | ||
|  | --------------------|--------------------------------|------------------------------------------- | ||
|  | ABS                 | CATEGORY_MATH_AND_TRIG         | abs | ||
|  | AND                 | CATEGORY_LOGICAL               | \PhpOffice\PhpSpreadsheet\Calculation\Logical::logicalAnd | ||
|  | 
 | ||
|  | ## I
 | ||
|  | 
 | ||
|  | Excel Function      | Category                       | PhpSpreadsheet Function
 | ||
|  | --------------------|--------------------------------|------------------------------------------- | ||
|  | IFS                 | CATEGORY_LOGICAL               | **Not yet Implemented** | ||
|  | 
 | ||
|  | EXPECTED | ||
|  | 
 | ||
|  |             ], | ||
|  |         ]; | ||
|  |     } | ||
|  | 
 | ||
|  |     public function providerGenerateFunctionListByCategory(): array | ||
|  |     { | ||
|  |         return [ | ||
|  |             [ | ||
|  |                 [ | ||
|  |                     'ABS' => ['category' => Cat::CATEGORY_MATH_AND_TRIG, 'functionCall' => 'abs'], | ||
|  |                     'AND' => ['category' => Cat::CATEGORY_LOGICAL, 'functionCall' => [Logical::class, 'logicalAnd']], | ||
|  |                     'IFS' => ['category' => Cat::CATEGORY_LOGICAL, 'functionCall' => [Functions::class, 'DUMMY']], | ||
|  |                 ], | ||
|  |                 <<<'EXPECTED' | ||
|  | # Function list by category
 | ||
|  | 
 | ||
|  | ## CATEGORY_CUBE
 | ||
|  | 
 | ||
|  | Excel Function      | PhpSpreadsheet Function
 | ||
|  | --------------------|------------------------------------------- | ||
|  | 
 | ||
|  | ## CATEGORY_DATABASE
 | ||
|  | 
 | ||
|  | Excel Function      | PhpSpreadsheet Function
 | ||
|  | --------------------|------------------------------------------- | ||
|  | 
 | ||
|  | ## CATEGORY_DATE_AND_TIME
 | ||
|  | 
 | ||
|  | Excel Function      | PhpSpreadsheet Function
 | ||
|  | --------------------|------------------------------------------- | ||
|  | 
 | ||
|  | ## CATEGORY_ENGINEERING
 | ||
|  | 
 | ||
|  | Excel Function      | PhpSpreadsheet Function
 | ||
|  | --------------------|------------------------------------------- | ||
|  | 
 | ||
|  | ## CATEGORY_FINANCIAL
 | ||
|  | 
 | ||
|  | Excel Function      | PhpSpreadsheet Function
 | ||
|  | --------------------|------------------------------------------- | ||
|  | 
 | ||
|  | ## CATEGORY_INFORMATION
 | ||
|  | 
 | ||
|  | Excel Function      | PhpSpreadsheet Function
 | ||
|  | --------------------|------------------------------------------- | ||
|  | 
 | ||
|  | ## CATEGORY_LOGICAL
 | ||
|  | 
 | ||
|  | Excel Function      | PhpSpreadsheet Function
 | ||
|  | --------------------|------------------------------------------- | ||
|  | AND                 | \PhpOffice\PhpSpreadsheet\Calculation\Logical::logicalAnd | ||
|  | IFS                 | **Not yet Implemented** | ||
|  | 
 | ||
|  | ## CATEGORY_LOOKUP_AND_REFERENCE
 | ||
|  | 
 | ||
|  | Excel Function      | PhpSpreadsheet Function
 | ||
|  | --------------------|------------------------------------------- | ||
|  | 
 | ||
|  | ## CATEGORY_MATH_AND_TRIG
 | ||
|  | 
 | ||
|  | Excel Function      | PhpSpreadsheet Function
 | ||
|  | --------------------|------------------------------------------- | ||
|  | ABS                 | abs | ||
|  | 
 | ||
|  | ## CATEGORY_STATISTICAL
 | ||
|  | 
 | ||
|  | Excel Function      | PhpSpreadsheet Function
 | ||
|  | --------------------|------------------------------------------- | ||
|  | 
 | ||
|  | ## CATEGORY_TEXT_AND_DATA
 | ||
|  | 
 | ||
|  | Excel Function      | PhpSpreadsheet Function
 | ||
|  | --------------------|------------------------------------------- | ||
|  | 
 | ||
|  | EXPECTED | ||
|  | 
 | ||
|  |             ], | ||
|  |         ]; | ||
|  |     } | ||
|  | } |