diff options
author | Earl Ou <shunhsingou@google.com> | 2012-10-05 15:22:33 +0800 |
---|---|---|
committer | Earl Ou <shunhsingou@google.com> | 2012-10-12 02:19:18 +0800 |
commit | fdff8bc8658c541d00aefdfa74ac9d61b1853eed (patch) | |
tree | 414165045216024b10d8e680721728644ca07b35 /tests/src/com/android/gallery3d/exif/ExifReaderTest.java | |
parent | 968e68d546ca9c8943afe1e179d6c2174390c39e (diff) | |
download | android_packages_apps_Snap-fdff8bc8658c541d00aefdfa74ac9d61b1853eed.tar.gz android_packages_apps_Snap-fdff8bc8658c541d00aefdfa74ac9d61b1853eed.tar.bz2 android_packages_apps_Snap-fdff8bc8658c541d00aefdfa74ac9d61b1853eed.zip |
Use exiftool as ground truth for Exif API test
The ground truth XML file was generated by parsing the
output from Phil Harvey's exiftool. Then we can test photos
from 5000+ different camera provided by exiftool's website.
Change-Id: Ida2c0409929be450a3cbb4331504aadb41138bea
Diffstat (limited to 'tests/src/com/android/gallery3d/exif/ExifReaderTest.java')
-rw-r--r-- | tests/src/com/android/gallery3d/exif/ExifReaderTest.java | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/tests/src/com/android/gallery3d/exif/ExifReaderTest.java b/tests/src/com/android/gallery3d/exif/ExifReaderTest.java index 269120870..1300af0e9 100644 --- a/tests/src/com/android/gallery3d/exif/ExifReaderTest.java +++ b/tests/src/com/android/gallery3d/exif/ExifReaderTest.java @@ -21,15 +21,13 @@ import android.graphics.BitmapFactory; import java.io.IOException; import java.io.InputStream; -import java.util.HashMap; +import java.util.List; +import java.util.Map; public class ExifReaderTest extends ExifXmlDataTestCase { private static final String TAG = "ExifReaderTest"; - private final HashMap<Short, String> mIfd0Value = new HashMap<Short, String>(); - private final HashMap<Short, String> mIfd1Value = new HashMap<Short, String>(); - private final HashMap<Short, String> mExifIfdValue = new HashMap<Short, String>(); - private final HashMap<Short, String> mInteroperabilityIfdValue = new HashMap<Short, String>(); + private List<Map<Short, String>> mGroundTruth; private InputStream mImageInputStream; @@ -45,19 +43,16 @@ public class ExifReaderTest extends ExifXmlDataTestCase { XmlResourceParser parser = getInstrumentation().getContext().getResources().getXml(mXmlResourceId); - ExifXmlReader.readXml(parser, mIfd0Value, mIfd1Value, mExifIfdValue - , mInteroperabilityIfdValue); + mGroundTruth = ExifXmlReader.readXml(getInstrumentation().getContext(), mXmlResourceId); parser.close(); } public void testRead() throws ExifInvalidFormatException, IOException { ExifReader reader = new ExifReader(); ExifData exifData = reader.read(mImageInputStream); - checkIfd(exifData.getIfdData(IfdId.TYPE_IFD_0), mIfd0Value); - checkIfd(exifData.getIfdData(IfdId.TYPE_IFD_1), mIfd1Value); - checkIfd(exifData.getIfdData(IfdId.TYPE_IFD_EXIF), mExifIfdValue); - checkIfd(exifData.getIfdData(IfdId.TYPE_IFD_INTEROPERABILITY), - mInteroperabilityIfdValue); + for (int i = 0; i < IfdId.TYPE_IFD_COUNT; i++) { + checkIfd(exifData.getIfdData(i), mGroundTruth.get(i)); + } checkThumbnail(exifData); } @@ -115,16 +110,19 @@ public class ExifReaderTest extends ExifXmlDataTestCase { } } - private void checkIfd(IfdData ifd, HashMap<Short, String> ifdValue) { + private void checkIfd(IfdData ifd, Map<Short, String> ifdValue) { if (ifd == null) { assertEquals(0 ,ifdValue.size()); return; } ExifTag[] tags = ifd.getAllTags(); + int size = 0; for (ExifTag tag : tags) { + if (ExifTag.isSubIfdOffsetTag(tag.getTagId())) continue; assertEquals(ifdValue.get(tag.getTagId()), tag.valueToString().trim()); + size++; } - assertEquals(ifdValue.size(), tags.length); + assertEquals(ifdValue.size(), size); } @Override |