84 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			84 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace FFMpeg\Tests\Coordinate; | ||
|  | 
 | ||
|  | use FFMpeg\Coordinate\Dimension; | ||
|  | use FFMpeg\Tests\TestCase; | ||
|  | use FFMpeg\Coordinate\AspectRatio; | ||
|  | 
 | ||
|  | class AspectRatioTest extends TestCase | ||
|  | { | ||
|  |     /** | ||
|  |      * @dataProvider provideDimensionsAndExpectedratio | ||
|  |      */ | ||
|  |     public function testFromDimensions($width, $height, $strategy, $expected, $calculatedWidth, $calculatedHeight, $modulus = 2) | ||
|  |     { | ||
|  |         $ratio = AspectRatio::create(new Dimension($width, $height), $strategy); | ||
|  |         $this->assertEquals($expected, $ratio->getValue()); | ||
|  | 
 | ||
|  |         $this->assertEquals($calculatedHeight, $ratio->calculateHeight(240, $modulus)); | ||
|  |         $this->assertEquals($calculatedWidth, $ratio->calculateWidth(320, $modulus)); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function provideDimensionsAndExpectedratio() | ||
|  |     { | ||
|  |         return array( | ||
|  |             //AR_5_4
 | ||
|  |             array(720, 576, false, 5/4, 400, 192), | ||
|  |             array(720, 577, false, 5/4, 400, 192), | ||
|  |             array(720, 620, false, 720/620, 372, 206), | ||
|  |             array(720, 576, true, 5/4, 400, 192), | ||
|  |             //AR_ROTATED_4_5
 | ||
|  |             array(576, 720, false, 4/5, 256, 300), | ||
|  |             array(576, 720, true, 4/5, 256, 300), | ||
|  |             //AR_4_3
 | ||
|  |             array(320, 240, false, 4/3, 426, 180), | ||
|  |             array(320, 240, true, 4/3, 426, 180), | ||
|  |             //AR_ROTATED_3_4
 | ||
|  |             array(240, 320, false, 3/4, 240, 320), | ||
|  |             array(240, 320, true, 3/4, 240, 320), | ||
|  |             //AR_16_9
 | ||
|  |             array(1920, 1080, false, 16/9, 568, 136), | ||
|  |             array(1920, 1080, true, 16/9, 568, 136), | ||
|  |             array(1280, 720, false, 16/9, 568, 136), | ||
|  |             array(1280, 720, true, 16/9, 568, 136), | ||
|  |             array(3840, 2160, false, 16/9, 568, 136), | ||
|  |             array(3840, 2160, true, 16/9, 568, 136), | ||
|  |             // modulus 4
 | ||
|  |             array(1920, 1080, false, 16/9, 568, 136, 4), | ||
|  |             array(1920, 1080, true, 16/9, 568, 136, 4), | ||
|  |             array(1280, 720, false, 16/9, 568, 136, 4), | ||
|  |             array(1280, 720, true, 16/9, 568, 136, 4), | ||
|  |             array(3840, 2160, false, 16/9, 568, 136, 4), | ||
|  |             array(3840, 2160, true, 16/9, 568, 136, 4), | ||
|  |             // modulus 16
 | ||
|  |             array(1920, 1080, false, 16/9, 576, 128, 16), | ||
|  |             array(1920, 1080, true, 16/9, 576, 128, 16), | ||
|  |             array(1280, 720, false, 16/9, 576, 128, 16), | ||
|  |             array(1280, 720, true, 16/9, 576, 128, 16), | ||
|  |             array(3840, 2160, false, 16/9, 576, 128, 16), | ||
|  |             array(3840, 2160, true, 16/9, 576, 128, 16), | ||
|  |             //AR_ROTATED_9_16
 | ||
|  |             array(1080, 1920, false, 9/16, 180, 426), | ||
|  |             array(1080, 1920, true, 9/16, 180, 426), | ||
|  |             array(720, 1280, false, 9/16, 180, 426), | ||
|  |             array(720, 1280, true, 9/16, 180, 426), | ||
|  |             array(2160, 3840, false, 9/16, 180, 426), | ||
|  |             array(2160, 3840, true, 9/16, 180, 426), | ||
|  |             //AR_3_2
 | ||
|  |             array(360, 240, false, 3/2, 480, 160), | ||
|  |             array(360, 240, true, 3/2, 480, 160), | ||
|  |             //AR_ROTATED_2_3
 | ||
|  |             array(240, 360, false, 2/3, 214, 360), | ||
|  |             array(240, 360, true, 2/3, 214, 360), | ||
|  |             //AR_5_3
 | ||
|  |             //AR_ROTATED_3_5
 | ||
|  |             //AR_1_1
 | ||
|  |             //AR_1_DOT_85_1
 | ||
|  |             //AR_ROTATED_1_DOT_85
 | ||
|  |             //AR_2_DOT_39_1
 | ||
|  |             //AR_ROTATED_2_DOT_39
 | ||
|  |         ); | ||
|  |     } | ||
|  | } |