/**
  * @param $exifData
  * @return Dto\Exif
  */
 protected function buildExifDto($exifData)
 {
     $exifData['Aperture'] = isset($exifData['FNumber']) ? NumberConverter::convertRationalToFloat($exifData['FNumber']) : 0.0;
     $exifData['FocalLength'] = isset($exifData['FocalLength']) ? (int) NumberConverter::convertRationalToFloat($exifData['FocalLength']) : 0;
     $exifData['XResolution'] = isset($exifData['XResolution']) ? (int) NumberConverter::convertRationalToFloat($exifData['XResolution']) : 0;
     $exifData['YResolution'] = isset($exifData['YResolution']) ? (int) NumberConverter::convertRationalToFloat($exifData['YResolution']) : 0;
     $exifData['ColorSpace'] = isset($exifData['ColorSpace']) ? $this->colorSpaceUtility->translateColorSpaceId($exifData['ColorSpace']) : '';
     $exifData['Description'] = isset($exifData['ImageDescription']) ? $exifData['ImageDescription'] : '';
     if (isset($exifData['GPSLongitude']) && isset($exifData['GPSLongitudeRef']) && isset($exifData['GPSLatitude']) && isset($exifData['GPSLatitudeRef'])) {
         $exifData['GPSLongitude'] = GpsConverter::convertRationalArrayAndReferenceToFloat($exifData['GPSLongitude'], $exifData['GPSLongitudeRef']);
         $exifData['GPSLatitude'] = GpsConverter::convertRationalArrayAndReferenceToFloat($exifData['GPSLatitude'], $exifData['GPSLatitudeRef']);
     }
     return new Dto\Exif($exifData);
 }
 /**
  * @test
  * @dataProvider rationalDataProvider
  *
  * @param $rational
  * @param $expected
  */
 public function convertRationalToFloat($rational, $expected)
 {
     $actual = NumberConverter::convertRationalToFloat($rational);
     $this->assertEquals($expected, $actual);
 }