| 
									
										
										
										
											2019-07-25 19:02:41 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace PhpOffice\PhpSpreadsheetTests\Calculation\Functions\Engineering; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use PhpOffice\PhpSpreadsheet\Calculation\Engineering; | 
					
						
							|  |  |  | use PhpOffice\PhpSpreadsheet\Calculation\Functions; | 
					
						
							|  |  |  | use PhpOffice\PhpSpreadsheetTests\Custom\ComplexAssert; | 
					
						
							|  |  |  | use PHPUnit\Framework\TestCase; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ImSqrtTest extends TestCase | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     const COMPLEX_PRECISION = 1E-8; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @var ComplexAssert | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $complexAssert; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-27 10:28:36 +00:00
										 |  |  |     protected function setUp(): void | 
					
						
							| 
									
										
										
										
											2019-07-25 19:02:41 +00:00
										 |  |  |     { | 
					
						
							|  |  |  |         Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL); | 
					
						
							|  |  |  |         $this->complexAssert = new ComplexAssert(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-27 10:28:36 +00:00
										 |  |  |     protected function tearDown(): void | 
					
						
							| 
									
										
										
										
											2019-07-25 19:02:41 +00:00
										 |  |  |     { | 
					
						
							|  |  |  |         $this->complexAssert = null; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @dataProvider providerIMSQRT | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param mixed $expectedResult | 
					
						
							|  |  |  |      * @param mixed $value | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2020-05-18 04:49:57 +00:00
										 |  |  |     public function testIMSQRT($expectedResult, $value): void | 
					
						
							| 
									
										
										
										
											2019-07-25 19:02:41 +00:00
										 |  |  |     { | 
					
						
							|  |  |  |         $result = Engineering::IMSQRT($value); | 
					
						
							| 
									
										
										
										
											2020-05-18 04:49:57 +00:00
										 |  |  |         self::assertTrue( | 
					
						
							| 
									
										
										
										
											2019-07-25 19:02:41 +00:00
										 |  |  |             $this->complexAssert->assertComplexEquals($expectedResult, $result, self::COMPLEX_PRECISION), | 
					
						
							|  |  |  |             $this->complexAssert->getErrorMessage() | 
					
						
							|  |  |  |         ); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function providerIMSQRT() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2020-05-17 09:35:55 +00:00
										 |  |  |         return require 'tests/data/Calculation/Engineering/IMSQRT.php'; | 
					
						
							| 
									
										
										
										
											2019-07-25 19:02:41 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | } |