OSDN Git Service

LAT,LONの精度UP
authorhayashi <hayashi.yuu@gmail.com>
Sun, 16 Jul 2017 11:35:46 +0000 (20:35 +0900)
committerhayashi <hayashi.yuu@gmail.com>
Sun, 16 Jul 2017 11:35:46 +0000 (20:35 +0900)
importPicture/doc/EXiF.class.violet.html
importPicture/src/osm/jp/gpx/ImportPicture.java
importPicture/test/osm/jp/gpx/ElementMapTRKPTTest.java
importPicture/test/osm/jp/gpx/ElementMapTRKSEGTest.java
importPicture/test/osm/jp/gpx/ImportPictureTest.java

index d6280ed..dc33285 100644 (file)
@@ -82,7 +82,7 @@
     </ClassNode>
     <ClassNode id="25">
       <children id="26"/>
-      <location class="Point2D.Double" id="27" x="980.0" y="90.0"/>
+      <location class="Point2D.Double" id="27" x="980.0" y="110.0"/>
       <id id="28" value="19de1c4a-6a41-49c5-bf2a-8a1faeba9a24"/>
       <revision>1</revision>
       <backgroundColor reference="7"/>
         <text></text>
       </attributes>
       <methods id="38" justification="0" size="4" underlined="false">
-        <text>+ getGPSDirectory(): TiffOutputDirectory</text>
+        <text>+ getGPSDirectory(): TiffOutputDirectory
++ setGPSInDegrees(
+        longitude: double, 
+        latitude:double) : void</text>
       </methods>
     </ClassNode>
     <ClassNode id="39">
 </ClassDiagramGraph>]]></SCRIPT>
        <BR />
        <BR />
-       <IMG alt="embedded diagram image" src="data:image/png;base64,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" />
+       <IMG alt="embedded diagram image" src="data:image/png;base64,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" />
 </BODY>
 </HTML>
\ No newline at end of file
index 5586322..6bde0cc 100644 (file)
@@ -569,11 +569,12 @@ public class ImportPicture extends Thread {
                        }\r
        \r
                        //---- EXIF GPS_ ----\r
-                    final String longitudeRef = (longitude < 0 ? "W" : "E");\r
                     longitude = Math.abs(longitude);\r
-                    final String latitudeRef = (latitude < 0 ? "S" : "N");\r
                     latitude = Math.abs(latitude);\r
 \r
+                    /*\r
+                    final String longitudeRef = (longitude < 0 ? "W" : "E");\r
+                    final String latitudeRef = (latitude < 0 ? "S" : "N");\r
                     gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LONGITUDE_REF);\r
                     gpsDir.add(GpsTagConstants.GPS_TAG_GPS_LONGITUDE_REF, longitudeRef);\r
                     gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LATITUDE_REF);\r
@@ -587,7 +588,7 @@ public class ImportPicture extends Thread {
                         final double longitudeMinutes = (value.setScale(0, RoundingMode.DOWN)).doubleValue();\r
                         value = value.subtract(BigDecimal.valueOf(longitudeMinutes));\r
                         value = value.multiply(BigDecimal.valueOf(60));\r
-                        final double longitudeSeconds = (value.setScale(0, RoundingMode.DOWN)).doubleValue();\r
+                        final double longitudeSeconds = (value.setScale(3, BigDecimal.ROUND_HALF_UP)).doubleValue();\r
                         gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LONGITUDE);\r
                         gpsDir.add(GpsTagConstants.GPS_TAG_GPS_LONGITUDE,\r
                                 RationalNumber.valueOf(longitudeDegrees),\r
@@ -602,12 +603,15 @@ public class ImportPicture extends Thread {
                         final double latitudeMinutes = (value.setScale(0, RoundingMode.DOWN)).doubleValue();\r
                         value = value.subtract(BigDecimal.valueOf(latitudeMinutes));\r
                         value = value.multiply(BigDecimal.valueOf(60));\r
-                        final double latitudeSeconds = (value.setScale(0, RoundingMode.DOWN)).doubleValue();                        gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LATITUDE);\r
+                        final double latitudeSeconds = (value.setScale(3, BigDecimal.ROUND_HALF_UP)).doubleValue();\r
+                        gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LATITUDE);\r
                         gpsDir.add(GpsTagConstants.GPS_TAG_GPS_LATITUDE,\r
                                 RationalNumber.valueOf(latitudeDegrees),\r
                                 RationalNumber.valueOf(latitudeMinutes),\r
                                 RationalNumber.valueOf(latitudeSeconds));\r
                     }\r
+                    */\r
+                    outputSet.setGPSInDegrees(longitude, latitude);\r
                 }\r
 \r
                 ExifRewriter rewriter = new ExifRewriter();\r
index 3388844..a545e23 100644 (file)
@@ -156,6 +156,7 @@ public class ElementMapTRKPTTest {
                        assertThat(sdf.format(tag.time), is("2017-05-29T10:23:18Z"));
                        assertThat(tag.eleStr, is(nullValue()));
                        assertThat(tag.lat, is((new Double(values[0][1])).doubleValue()));
+                       assertThat(tag.lon, is((new Double(values[0][2])).doubleValue()));
                        assertThat(tag.magvarStr, is(nullValue()));
                }
 
@@ -165,6 +166,7 @@ public class ElementMapTRKPTTest {
                        assertThat(sdf.format(tag.time), is("2017-05-29T10:23:18Z"));
                        assertThat(tag.eleStr, is(nullValue()));
                        assertThat(tag.lat, is((new Double(values[0][1])).doubleValue()));
+                       assertThat(tag.lon, is((new Double(values[0][2])).doubleValue()));
                        assertThat(tag.magvarStr, is(nullValue()));
                }
 
@@ -174,6 +176,7 @@ public class ElementMapTRKPTTest {
                        assertThat(sdf.format(tag.time), is("2017-05-29T10:23:18Z"));
                        assertThat(tag.eleStr, is(nullValue()));
                        assertThat(tag.lat, is((new Double(values[0][1])).doubleValue()));
+                       assertThat(tag.lon, is((new Double(values[0][2])).doubleValue()));
                        assertThat(tag.magvarStr, is(nullValue()));
                }
 
@@ -183,6 +186,7 @@ public class ElementMapTRKPTTest {
                        assertThat(sdf.format(tag.time), is("2017-05-29T10:23:21Z"));
                        assertThat(tag.eleStr, is("614.90"));
                        assertThat(tag.lat, is((new Double(values[1][1])).doubleValue()));
+                       assertThat(tag.lon, is((new Double(values[1][2])).doubleValue()));
                        assertThat(tag.magvarStr, is(notNullValue()));
                }
 
@@ -192,6 +196,7 @@ public class ElementMapTRKPTTest {
                        assertThat(sdf.format(tag.time), is("2017-05-29T10:23:21Z"));
                        assertThat(tag.eleStr, is("614.90"));
                        assertThat(tag.lat, is((new Double(values[1][1])).doubleValue()));
+                       assertThat(tag.lon, is((new Double(values[1][2])).doubleValue()));
                        assertThat(tag.magvarStr, is(notNullValue()));
                }
 
@@ -201,6 +206,7 @@ public class ElementMapTRKPTTest {
                        assertThat(sdf.format(tag.time), is("2017-05-29T10:23:21Z"));
                        assertThat(tag.eleStr, is("614.90"));
                        assertThat(tag.lat, is((new Double(values[1][1])).doubleValue()));
+                       assertThat(tag.lon, is((new Double(values[1][2])).doubleValue()));
                        assertThat(tag.magvarStr, is(notNullValue()));
                }
 
@@ -210,6 +216,7 @@ public class ElementMapTRKPTTest {
                        assertThat(sdf.format(tag.time), is("2017-05-29T10:23:24Z"));
                        assertThat(tag.eleStr, is("615.00"));
                        assertThat(tag.lat, is((new Double(values[2][1])).doubleValue()));
+                       assertThat(tag.lon, is((new Double(values[2][2])).doubleValue()));
                        assertThat(tag.magvarStr, is(notNullValue()));
                }
 
@@ -219,6 +226,7 @@ public class ElementMapTRKPTTest {
                        assertThat(sdf.format(tag.time), is("2017-05-29T10:23:24Z"));
                        assertThat(tag.eleStr, is("615.00"));
                        assertThat(tag.lat, is((new Double(values[2][1])).doubleValue()));
+                       assertThat(tag.lon, is((new Double(values[2][2])).doubleValue()));
                        assertThat(tag.magvarStr, is(notNullValue()));
                }
 
@@ -228,6 +236,7 @@ public class ElementMapTRKPTTest {
                        assertThat(sdf.format(tag.time), is("2017-05-29T10:23:24Z"));
                        assertThat(tag.eleStr, is("615.00"));
                        assertThat(tag.lat, is((new Double(values[2][1])).doubleValue()));
+                       assertThat(tag.lon, is((new Double(values[2][2])).doubleValue()));
                        assertThat(tag.magvarStr, is(notNullValue()));
                }
 
@@ -237,6 +246,7 @@ public class ElementMapTRKPTTest {
                        assertThat(sdf.format(tag.time), is("2017-05-29T10:23:27Z"));
                        assertThat(tag.eleStr, is("615.03"));
                        assertThat(tag.lat, is((new Double(values[3][1])).doubleValue()));
+                       assertThat(tag.lon, is((new Double(values[3][2])).doubleValue()));
                        assertThat(tag.magvarStr, is(notNullValue()));
                }
 
@@ -246,6 +256,7 @@ public class ElementMapTRKPTTest {
                        assertThat(sdf.format(tag.time), is("2017-05-29T10:23:27Z"));
                        assertThat(tag.eleStr, is("615.03"));
                        assertThat(tag.lat, is((new Double(values[3][1])).doubleValue()));
+                       assertThat(tag.lon, is((new Double(values[3][2])).doubleValue()));
                        assertThat(tag.magvarStr, is(notNullValue()));
                }
 
@@ -255,6 +266,7 @@ public class ElementMapTRKPTTest {
                        assertThat(sdf.format(tag.time), is("2017-05-29T10:23:27Z"));
                        assertThat(tag.eleStr, is("615.03"));
                        assertThat(tag.lat, is((new Double(values[3][1])).doubleValue()));
+                       assertThat(tag.lon, is((new Double(values[3][2])).doubleValue()));
                        assertThat(tag.magvarStr, is(notNullValue()));
                }
 
index 49a2dd8..6545304 100644 (file)
@@ -12,10 +12,9 @@ import org.junit.experimental.theories.DataPoints;
 import org.junit.experimental.theories.Theories;
 import org.junit.experimental.theories.Theory;
 import org.junit.runner.RunWith;
-import org.junit.experimental.runners.Enclosed;
 
-@RunWith(Enclosed.class)
 public class ElementMapTRKSEGTest {
+       
        @RunWith(Theories.class)
        public static class 各種GPXファイルを食わせる {
                static class Fixture {
index cda2637..76d0db1 100644 (file)
@@ -9,8 +9,6 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.nio.channels.FileChannel;
 
 import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
@@ -27,7 +25,6 @@ import org.junit.experimental.theories.DataPoints;
 import org.junit.experimental.theories.Theories;
 import org.junit.experimental.theories.Theory;
 
-@RunWith(Theories.class)
 public class ImportPictureTest {
        static class Expecter {
                String value;
@@ -81,217 +78,76 @@ public class ImportPictureTest {
                }
        }
 
-       @DataPoints
-       public static Fixture[] datas = {
-                       new Fixture(
-                                       "[A1].SONYカメラの場合.FILE_UPDATE時間を基準にして時間外のファイルはコピー対象外の時",
-                                       "testdata/Sony20170518.tar.gz", 
-                                       "testdata/20170518.gpx",
-                                       "testdata/cameradata/20170518.gpx",
-                                       "testdata/AdjustTime.20170518.A1.ini",
-                                       new Expecter[] {
-                                               new Expecter("10170518/20170518_.gpx", true, null, 90.0D, 180.0D, false),
-                                               new Expecter("10170518/DSC05183.JPG", false, null, 90.0D, 180.0D, false),
-                                               new Expecter("10170518/DSC05184.JPG", true, "2017:05:18 09:34:44", 35.4367520000D, 139.4082730000D, true),
-                                               new Expecter("10170518/DSC05196.JPG", true, "2017:05:18 09:37:32", 35.4376820000D, 139.4085150000D, true),
-                                               new Expecter("10170518/DSC05204.JPG", true, "2017:05:18 09:46:48", 35.4368560000D, 139.4082190000D, true),
-                                               new Expecter("10170518/DSC05205.JPG", false, null, 90.0D, 180.0D, false),
-                                       }),
-                       new Fixture(
-                                       "[A2].SONYカメラの場合.FILE_UPDATE時間を基準にして時間外のファイルもコピーする時",
-                                       "testdata/Sony20170518.tar.gz", 
-                                       "testdata/20170518.gpx",
-                                       "testdata/cameradata/20170518.gpx",
-                                       "testdata/AdjustTime.20170518.A2.ini",
-                                       new Expecter[] {
-                                               new Expecter("10170518/20170518_.gpx", true, null, 90.0D, 180.0D, false),
-                                               new Expecter("10170518/DSC05183.JPG", true, "2017:05:18 09:16:48", 90.0D, 180.0D, true),
-                                               new Expecter("10170518/DSC05184.JPG", true, "2017:05:18 09:34:44", 35.4367520000D, 139.4082730000D, true),
-                                               new Expecter("10170518/DSC05196.JPG", true, "2017:05:18 09:37:32", 35.4376820000D, 139.4085150000D, true),
-                                               new Expecter("10170518/DSC05204.JPG", true, "2017:05:18 09:46:48", 35.4368560000D, 139.4082190000D, true),
-                                               new Expecter("10170518/DSC05205.JPG", true, "2017:05:18 09:48:04", 90.0D, 180.0D, true),
-                                       }),
-                       
-                       new Fixture(
-                                       "[B1].WiMiUSカメラの場合.FILE_UPDATE時間を基準にして時間外のファイルはコピー対象外の時",
-                                       "testdata/WiMiUS20170518.tar.gz", 
-                                       "testdata/20170518.gpx",
-                                       "testdata/cameradata/20170518.gpx",
-                                       "testdata/AdjustTime.20170518.B1.ini",
-                                       new Expecter[] {
-                                               new Expecter("cameradata/20170518_.gpx", true, null, 90.0D, 180.0D, false),
-                                               new Expecter("cameradata/20170518_092031A.jpg", false, null, 90.0D, 180.0D, false),
-                                               new Expecter("cameradata/20170518_094226A_snap.jpg", true, "2017:05:18 09:42:26", 35.4366860000D, 139.4082650000D, true),
-                                               new Expecter("cameradata/20170518_094737A.jpg", true, "2017:05:18 09:47:36", 35.4368200000D, 139.4082810000D, true),
-                                               new Expecter("cameradata/20170518_094827A.jpg", false, null, 90.0D, 180.0D, false),
-                                       }),
-
-                       new Fixture(
-                                       "[B2].WiMiUSカメラの場合.FILE_UPDATE時間を基準にして時間外のファイルもコピーする時",
-                                       "testdata/WiMiUS20170518.tar.gz", 
-                                       "testdata/20170518.gpx",
-                                       "testdata/cameradata/20170518.gpx",
-                                       "testdata/AdjustTime.20170518.B2.ini",
-                                       new Expecter[] {
-                                               new Expecter("cameradata/20170518_.gpx", true, null, 90.0D, 180.0D, false),
-                                               new Expecter("cameradata/20170518_092031A.jpg", true, "2017:05:18 09:20:30", 90.0D, 180.0D, true),
-                                               new Expecter("cameradata/20170518_094226A_snap.jpg", true, "2017:05:18 09:42:26", 35.4366860000D, 139.4082650000D, true),
-                                               new Expecter("cameradata/20170518_094737A.jpg", true, "2017:05:18 09:47:36", 35.4368200000D, 139.4082810000D, true),
-                                               new Expecter("cameradata/20170518_094827A.jpg", true, "2017:05:18 09:48:26", 90.0D, 180.0D, true),
-                                       }),
-                       
-                       new Fixture(
-                                       "[M1a].GPXが複数のTRKSEGに分割している場合.FILE_UPDATE時間を基準.GarminColorado",
-                                       "testdata/separate.tar.gz",
-                                       "testdata/muiltiTRK.GarminColorado.gpx.xml",
-                                       "testdata/cameradata/separate.gpx",
-                                       "testdata/AdjustTime.M1a.separate.ini",
-                                       new Expecter[] {
-                                       // GPX file
-                                               new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
-                                   
-                                   // out of time ( - 2017-05-29T01:23:18)
-                                               new Expecter("separate/20170529_102305A.jpg", false, null, 90.0D, 180.0D, false),
-                                               new Expecter("separate/20170529_102314A.jpg", false, null, 90.0D, 180.0D, false),
-                                   
-                                   // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
-                                               new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
-                                               new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
-                                               new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:04", 35.8808881603D, 137.9979396332D, true),
-
-                                   // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
-                                               new Expecter("separate/20170529_102409A.jpg", false, null, 90.0D, 180.0D, false),
-                                               new Expecter("separate/20170529_102418A.jpg", false, null, 90.0D, 180.0D, false),
-
-                                   // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
-                                               new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
-                                               new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
-
-                                   // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
-                                               new Expecter("separate/20170529_103315A.jpg", false, null, 90.0D, 180.0D, false),
-                                               new Expecter("separate/20170529_103545A.jpg", false, null, 90.0D, 180.0D, false),
-
-                                   // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
-                                               new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
-                                               new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:18", 35.8339846227D, 138.0625408050D, true),
-                                       }),
-
-                       new Fixture(
-                                       "[M1b].GPXが複数のTRKSEGに分割している場合.FILE_UPDATE時間を基準.GarminColorado",
-                                       "testdata/separate.tar.gz", 
-                                       "testdata/muiltiTRK.GarminColorado.gpx.xml",
-                                       "testdata/cameradata/separate.gpx",
-                                       "testdata/AdjustTime.M1b.separate.ini",
-                                       new Expecter[] {
-                                               // GPX file
-                                                       new Expecter("separate/separate_.gpx", true, null, 90.D, 180.0D, false),
-                                           
-                                           // out of time ( - 2017-05-29T01:23:18)
-                                                       new Expecter("separate/20170529_102305A.jpg", true, "2017:05:29 10:23:06", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_102314A.jpg", true, "2017:05:29 10:23:14", 90.0D, 180.0D, true),
-                                           
-                                           // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
-                                                       new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
-                                                       new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
-                                                       new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:04", 35.8808881603D, 137.9979396332D, true),
-
-                                           // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
-                                                       new Expecter("separate/20170529_102409A.jpg", true, "2017:05:29 10:24:10", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_102418A.jpg", true, "2017:05:29 10:24:18", 90.0D, 180.0D, true),
-
-                                           // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
-                                                       new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
-                                                       new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
-
-                                           // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
-                                                       new Expecter("separate/20170529_103315A.jpg", true, "2017:05:29 10:33:14", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_103545A.jpg", true, "2017:05:29 10:35:44", 90.0D, 180.0D, true),
-
-                                           // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
-                                                       new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
-                                                       new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:18", 35.8339846227D, 138.0625408050D, true),
-                                       }),
-
-                       new Fixture(
-                                       "[M1c].GPXが複数のTRKSEGに分割している場合.EXIF時間を基準.GarminColorado",
-                                       "testdata/separate.tar.gz", 
-                                       "testdata/muiltiTRK.GarminColorado.gpx.xml",
-                                       "testdata/cameradata/separate.gpx",
-                                       "testdata/AdjustTime.M1c.separate.ini",
-                                       new Expecter[] {
-                                               // GPX file
-                                                       new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
-                                           
-                                           // out of time ( - 2017-05-29T01:23:18)
-                                                       new Expecter("separate/20170529_102305A.jpg", false, null, 90.0D, 180.0D, false),
-                                                       new Expecter("separate/20170529_102314A.jpg", false, null, 90.0D, 180.0D, false),
-                                           
-                                           // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
-                                                       new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
-                                                       new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
-                                                       new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:05", 35.8808641881D, 137.9981065169D, true),
-
-                                           // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
-                                                       new Expecter("separate/20170529_102409A.jpg", false, null, 90.0D, 180.0D, false),
-                                                       new Expecter("separate/20170529_102418A.jpg", false, null, 90.0D, 180.0D, false),
-
-                                           // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
-                                                       new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
-                                                       new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
-
-                                           // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
-                                                       new Expecter("separate/20170529_103315A.jpg", false, null, 90.0D, 180.0D, false),
-                                                       new Expecter("separate/20170529_103545A.jpg", false, null, 90.0D, 180.0D, false),
-
-                                           // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
-                                                       new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
-                                                       new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:19", 35.8339846227D, 138.0625408050D, true),
-                                       }),
-
-                       new Fixture(
-                                       "[M1d].GPXが複数のTRKSEGに分割している場合.EXIF時間を基準.GarminColorado",
-                                       "testdata/separate.tar.gz", 
-                                       "testdata/muiltiTRK.GarminColorado.gpx.xml",
-                                       "testdata/cameradata/separate.gpx",
-                                       "testdata/AdjustTime.M1d.separate.ini",
-                                       new Expecter[] {
-                                               // GPX file
-                                                       new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
-                                           
-                                           // out of time ( - 2017-05-29T01:23:18)
-                                                       new Expecter("separate/20170529_102305A.jpg", true, "2017:05:29 10:23:05", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_102314A.jpg", true, "2017:05:29 10:23:14", 90.0D, 180.0D, true),
-                                           
-                                           // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
-                                                       new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
-                                                       new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
-                                                       new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:05", 35.8808641881D, 137.9981065169D, true),
-
-                                           // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
-                                                       new Expecter("separate/20170529_102409A.jpg", true, "2017:05:29 10:24:09", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_102418A.jpg", true, "2017:05:29 10:24:18", 90.0D, 180.0D, true),
-
-                                           // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
-                                                       new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
-                                                       new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
-
-                                           // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
-                                                       new Expecter("separate/20170529_103315A.jpg", true, "2017:05:29 10:33:15", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_103545A.jpg", true, "2017:05:29 10:35:45", 90.0D, 180.0D, true),
-
-                                           // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
-                                                       new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
-                                                       new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:19", 35.8339846227D, 138.0625408050D, true),
-                                       }),
-
-                       
-                       new Fixture(
-                                       "[M2a].GPXが複数のTRKSEGに分割している場合.FILE_UPDATE時間を基準.eTrex_20J",
-                                       "testdata/separate.tar.gz", 
-                                       "testdata/multiTRKSEG.eTrex_20J.gpx.xml",
-                                       "testdata/cameradata/separate.gpx",
-                                       "testdata/AdjustTime.M2a.separate.ini",
-                                       new Expecter[] {
+       
+       @RunWith(Theories.class)
+       public static class 各種カメラGPXファイル {
+
+               @DataPoints
+               public static Fixture[] datas = {
+                               new Fixture(
+                                               "[A1].SONYカメラの場合.FILE_UPDATE時間を基準にして時間外のファイルはコピー対象外の時",
+                                               "testdata/Sony20170518.tar.gz", 
+                                               "testdata/20170518.gpx",
+                                               "testdata/cameradata/20170518.gpx",
+                                               "testdata/AdjustTime.20170518.A1.ini",
+                                               new Expecter[] {
+                                                       new Expecter("10170518/20170518_.gpx", true, null, 90.0D, 180.0D, false),
+                                                       new Expecter("10170518/DSC05183.JPG", false, null, 90.0D, 180.0D, false),
+                                                       new Expecter("10170518/DSC05184.JPG", true, "2017:05:18 09:34:44", 35.4367520000D, 139.4082730000D, true),
+                                                       new Expecter("10170518/DSC05196.JPG", true, "2017:05:18 09:37:32", 35.4376820000D, 139.4085150000D, true),
+                                                       new Expecter("10170518/DSC05204.JPG", true, "2017:05:18 09:46:48", 35.4368560000D, 139.4082190000D, true),
+                                                       new Expecter("10170518/DSC05205.JPG", false, null, 90.0D, 180.0D, false),
+                                               }),
+                               new Fixture(
+                                               "[A2].SONYカメラの場合.FILE_UPDATE時間を基準にして時間外のファイルもコピーする時",
+                                               "testdata/Sony20170518.tar.gz", 
+                                               "testdata/20170518.gpx",
+                                               "testdata/cameradata/20170518.gpx",
+                                               "testdata/AdjustTime.20170518.A2.ini",
+                                               new Expecter[] {
+                                                       new Expecter("10170518/20170518_.gpx", true, null, 90.0D, 180.0D, false),
+                                                       new Expecter("10170518/DSC05183.JPG", true, "2017:05:18 09:16:48", 90.0D, 180.0D, true),
+                                                       new Expecter("10170518/DSC05184.JPG", true, "2017:05:18 09:34:44", 35.4367520000D, 139.4082730000D, true),
+                                                       new Expecter("10170518/DSC05196.JPG", true, "2017:05:18 09:37:32", 35.4376820000D, 139.4085150000D, true),
+                                                       new Expecter("10170518/DSC05204.JPG", true, "2017:05:18 09:46:48", 35.4368560000D, 139.4082190000D, true),
+                                                       new Expecter("10170518/DSC05205.JPG", true, "2017:05:18 09:48:04", 90.0D, 180.0D, true),
+                                               }),
+                               
+                               new Fixture(
+                                               "[B1].WiMiUSカメラの場合.FILE_UPDATE時間を基準にして時間外のファイルはコピー対象外の時",
+                                               "testdata/WiMiUS20170518.tar.gz", 
+                                               "testdata/20170518.gpx",
+                                               "testdata/cameradata/20170518.gpx",
+                                               "testdata/AdjustTime.20170518.B1.ini",
+                                               new Expecter[] {
+                                                       new Expecter("cameradata/20170518_.gpx", true, null, 90.0D, 180.0D, false),
+                                                       new Expecter("cameradata/20170518_092031A.jpg", false, null, 90.0D, 180.0D, false),
+                                                       new Expecter("cameradata/20170518_094226A_snap.jpg", true, "2017:05:18 09:42:26", 35.4366860000D, 139.4082650000D, true),
+                                                       new Expecter("cameradata/20170518_094737A.jpg", true, "2017:05:18 09:47:36", 35.4368200000D, 139.4082810000D, true),
+                                                       new Expecter("cameradata/20170518_094827A.jpg", false, null, 90.0D, 180.0D, false),
+                                               }),
+
+                               new Fixture(
+                                               "[B2].WiMiUSカメラの場合.FILE_UPDATE時間を基準にして時間外のファイルもコピーする時",
+                                               "testdata/WiMiUS20170518.tar.gz", 
+                                               "testdata/20170518.gpx",
+                                               "testdata/cameradata/20170518.gpx",
+                                               "testdata/AdjustTime.20170518.B2.ini",
+                                               new Expecter[] {
+                                                       new Expecter("cameradata/20170518_.gpx", true, null, 90.0D, 180.0D, false),
+                                                       new Expecter("cameradata/20170518_092031A.jpg", true, "2017:05:18 09:20:30", 90.0D, 180.0D, true),
+                                                       new Expecter("cameradata/20170518_094226A_snap.jpg", true, "2017:05:18 09:42:26", 35.4366860000D, 139.4082650000D, true),
+                                                       new Expecter("cameradata/20170518_094737A.jpg", true, "2017:05:18 09:47:36", 35.4368200000D, 139.4082810000D, true),
+                                                       new Expecter("cameradata/20170518_094827A.jpg", true, "2017:05:18 09:48:26", 90.0D, 180.0D, true),
+                                               }),
+                               
+                               new Fixture(
+                                               "[M1a].GPXが複数のTRKSEGに分割している場合.FILE_UPDATE時間を基準.GarminColorado",
+                                               "testdata/separate.tar.gz",
+                                               "testdata/muiltiTRK.GarminColorado.gpx.xml",
+                                               "testdata/cameradata/separate.gpx",
+                                               "testdata/AdjustTime.M1a.separate.ini",
+                                               new Expecter[] {
                                                // GPX file
                                                        new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
                                            
@@ -319,359 +175,466 @@ public class ImportPictureTest {
                                            // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
                                                        new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
                                                        new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:18", 35.8339846227D, 138.0625408050D, true),
-                                       }),
-
-                       new Fixture(
-                                       "[M2b].GPXが複数のTRKSEGに分割している場合.FILE_UPDATE時間を基準.eTrex_20J",
-                                       "testdata/separate.tar.gz", 
-                                       "testdata/multiTRKSEG.eTrex_20J.gpx.xml",
-                                       "testdata/cameradata/separate.gpx",
-                                       "testdata/AdjustTime.M2b.separate.ini",
-                                       new Expecter[] {
-                                               // GPX file
-                                                       new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
-                                           
-                                           // out of time ( - 2017-05-29T01:23:18)
-                                                       new Expecter("separate/20170529_102305A.jpg", true, "2017:05:29 10:23:06", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_102314A.jpg", true, "2017:05:29 10:23:14", 90.0D, 180.0D, true),
-                                           
-                                           // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
-                                                       new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
-                                                       new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
-                                                       new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:04", 35.8808881603D, 137.9979396332D, true),
-
-                                           // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
-                                                       new Expecter("separate/20170529_102409A.jpg", true, "2017:05:29 10:24:10", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_102418A.jpg", true, "2017:05:29 10:24:18", 90.0D, 180.0D, true),
-
-                                           // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
-                                                       new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
-                                                       new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
-
-                                           // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
-                                                       new Expecter("separate/20170529_103315A.jpg", true, "2017:05:29 10:33:14", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_103545A.jpg", true, "2017:05:29 10:35:44", 90.0D, 180.0D, true),
-
-                                           // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
-                                                       new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
-                                                       new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:18", 35.8339846227D, 138.0625408050D, true),
-                                       }),
-
-                       new Fixture(
-                                       "[M2c].GPXが複数のTRKSEGに分割している場合.EXIF時間を基準.eTrex_20J",
-                                       "testdata/separate.tar.gz", 
-                                       "testdata/multiTRKSEG.eTrex_20J.gpx.xml",
-                                       "testdata/cameradata/separate.gpx",
-                                       "testdata/AdjustTime.M2c.separate.ini",
-                                       new Expecter[] {
-                                               // GPX file
-                                                       new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
-                                           
-                                           // out of time ( - 2017-05-29T01:23:18)
-                                                       new Expecter("separate/20170529_102305A.jpg", false, null, 90.0D, 180.0D, false),
-                                                       new Expecter("separate/20170529_102314A.jpg", false, null, 90.0D, 180.0D, false),
-                                           
-                                           // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
-                                                       new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
-                                                       new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
-                                                       new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:05", 35.8808641881D, 137.9981065169D, true),
-
-                                           // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
-                                                       new Expecter("separate/20170529_102409A.jpg", false, null, 90.0D, 180.0D, false),
-                                                       new Expecter("separate/20170529_102418A.jpg", false, null, 90.0D, 180.0D, false),
-
-                                           // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
-                                                       new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
-                                                       new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
-
-                                           // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
-                                                       new Expecter("separate/20170529_103315A.jpg", false, null, 90.0D, 180.0D, false),
-                                                       new Expecter("separate/20170529_103545A.jpg", false, null, 90.0D, 180.0D, false),
-
-                                           // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
-                                                       new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
-                                                       new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:19", 35.8339889813D, 138.0625394639D, true),
-                                       }),
-
-                       new Fixture(
-                                       "[M2d].GPXが複数のTRKSEGに分割している場合.EXIF時間を基準.eTrex_20J",
-                                       "testdata/separate.tar.gz", 
-                                       "testdata/multiTRKSEG.eTrex_20J.gpx.xml",
-                                       "testdata/cameradata/separate.gpx",
-                                       "testdata/AdjustTime.M2d.separate.ini",
-                                       new Expecter[] {
-                                               // GPX file
-                                                       new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
-                                           
-                                           // out of time ( - 2017-05-29T01:23:18)
-                                                       new Expecter("separate/20170529_102305A.jpg", true, "2017:05:29 10:23:05", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_102314A.jpg", true, "2017:05:29 10:23:14", 90.0D, 180.0D, true),
-                                           
-                                           // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
-                                                       new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
-                                                       new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
-                                                       new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:05", 35.8808641881D, 137.9981065169D, true),
-
-                                           // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
-                                                       new Expecter("separate/20170529_102409A.jpg", true, "2017:05:29 10:24:09", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_102418A.jpg", true, "2017:05:29 10:24:18", 90.0D, 180.0D, true),
-
-                                           // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
-                                                       new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
-                                                       new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
-
-                                           // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
-                                                       new Expecter("separate/20170529_103315A.jpg", true, "2017:05:29 10:33:15", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_103545A.jpg", true, "2017:05:29 10:35:45", 90.0D, 180.0D, true),
-
-                                           // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
-                                                       new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
-                                                       new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:19", 35.8339889813D, 138.0625394639D, true),
-                                       }),
+                                               }),
+
+                               new Fixture(
+                                               "[M1b].GPXが複数のTRKSEGに分割している場合.FILE_UPDATE時間を基準.GarminColorado",
+                                               "testdata/separate.tar.gz", 
+                                               "testdata/muiltiTRK.GarminColorado.gpx.xml",
+                                               "testdata/cameradata/separate.gpx",
+                                               "testdata/AdjustTime.M1b.separate.ini",
+                                               new Expecter[] {
+                                                       // GPX file
+                                                               new Expecter("separate/separate_.gpx", true, null, 90.D, 180.0D, false),
+                                                   
+                                                   // out of time ( - 2017-05-29T01:23:18)
+                                                               new Expecter("separate/20170529_102305A.jpg", true, "2017:05:29 10:23:06", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_102314A.jpg", true, "2017:05:29 10:23:14", 90.0D, 180.0D, true),
+                                                   
+                                                   // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
+                                                               new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
+                                                               new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
+                                                               new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:04", 35.8808881603D, 137.9979396332D, true),
+
+                                                   // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
+                                                               new Expecter("separate/20170529_102409A.jpg", true, "2017:05:29 10:24:10", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_102418A.jpg", true, "2017:05:29 10:24:18", 90.0D, 180.0D, true),
+
+                                                   // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
+                                                               new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
+                                                               new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
+
+                                                   // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
+                                                               new Expecter("separate/20170529_103315A.jpg", true, "2017:05:29 10:33:14", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_103545A.jpg", true, "2017:05:29 10:35:44", 90.0D, 180.0D, true),
+
+                                                   // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
+                                                               new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
+                                                               new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:18", 35.8339846227D, 138.0625408050D, true),
+                                               }),
+
+                               new Fixture(
+                                               "[M1c].GPXが複数のTRKSEGに分割している場合.EXIF時間を基準.GarminColorado",
+                                               "testdata/separate.tar.gz", 
+                                               "testdata/muiltiTRK.GarminColorado.gpx.xml",
+                                               "testdata/cameradata/separate.gpx",
+                                               "testdata/AdjustTime.M1c.separate.ini",
+                                               new Expecter[] {
+                                                       // GPX file
+                                                               new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // out of time ( - 2017-05-29T01:23:18)
+                                                               new Expecter("separate/20170529_102305A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_102314A.jpg", false, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
+                                                               new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
+                                                               new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
+                                                               new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:05", 35.8808641881D, 137.9981065169D, true),
+
+                                                   // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
+                                                               new Expecter("separate/20170529_102409A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_102418A.jpg", false, null, 90.0D, 180.0D, false),
+
+                                                   // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
+                                                               new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
+                                                               new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
+
+                                                   // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
+                                                               new Expecter("separate/20170529_103315A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_103545A.jpg", false, null, 90.0D, 180.0D, false),
+
+                                                   // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
+                                                               new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
+                                                               new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:19", 35.8339846227D, 138.0625408050D, true),
+                                               }),
+
+                               new Fixture(
+                                               "[M1d].GPXが複数のTRKSEGに分割している場合.EXIF時間を基準.GarminColorado",
+                                               "testdata/separate.tar.gz", 
+                                               "testdata/muiltiTRK.GarminColorado.gpx.xml",
+                                               "testdata/cameradata/separate.gpx",
+                                               "testdata/AdjustTime.M1d.separate.ini",
+                                               new Expecter[] {
+                                                       // GPX file
+                                                               new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // out of time ( - 2017-05-29T01:23:18)
+                                                               new Expecter("separate/20170529_102305A.jpg", true, "2017:05:29 10:23:05", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_102314A.jpg", true, "2017:05:29 10:23:14", 90.0D, 180.0D, true),
+                                                   
+                                                   // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
+                                                               new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
+                                                               new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
+                                                               new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:05", 35.8808641881D, 137.9981065169D, true),
+
+                                                   // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
+                                                               new Expecter("separate/20170529_102409A.jpg", true, "2017:05:29 10:24:09", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_102418A.jpg", true, "2017:05:29 10:24:18", 90.0D, 180.0D, true),
+
+                                                   // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
+                                                               new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
+                                                               new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
+
+                                                   // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
+                                                               new Expecter("separate/20170529_103315A.jpg", true, "2017:05:29 10:33:15", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_103545A.jpg", true, "2017:05:29 10:35:45", 90.0D, 180.0D, true),
+
+                                                   // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
+                                                               new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
+                                                               new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:19", 35.8339846227D, 138.0625408050D, true),
+                                               }),
+
+                               
+                               new Fixture(
+                                               "[M2a].GPXが複数のTRKSEGに分割している場合.FILE_UPDATE時間を基準.eTrex_20J",
+                                               "testdata/separate.tar.gz", 
+                                               "testdata/multiTRKSEG.eTrex_20J.gpx.xml",
+                                               "testdata/cameradata/separate.gpx",
+                                               "testdata/AdjustTime.M2a.separate.ini",
+                                               new Expecter[] {
+                                                       // GPX file
+                                                               new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // out of time ( - 2017-05-29T01:23:18)
+                                                               new Expecter("separate/20170529_102305A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_102314A.jpg", false, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
+                                                               new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
+                                                               new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
+                                                               new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:04", 35.8808881603D, 137.9979396332D, true),
+
+                                                   // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
+                                                               new Expecter("separate/20170529_102409A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_102418A.jpg", false, null, 90.0D, 180.0D, false),
+
+                                                   // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
+                                                               new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
+                                                               new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
+
+                                                   // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
+                                                               new Expecter("separate/20170529_103315A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_103545A.jpg", false, null, 90.0D, 180.0D, false),
+
+                                                   // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
+                                                               new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
+                                                               new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:18", 35.8339846227D, 138.0625408050D, true),
+                                               }),
+
+                               new Fixture(
+                                               "[M2b].GPXが複数のTRKSEGに分割している場合.FILE_UPDATE時間を基準.eTrex_20J",
+                                               "testdata/separate.tar.gz", 
+                                               "testdata/multiTRKSEG.eTrex_20J.gpx.xml",
+                                               "testdata/cameradata/separate.gpx",
+                                               "testdata/AdjustTime.M2b.separate.ini",
+                                               new Expecter[] {
+                                                       // GPX file
+                                                               new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // out of time ( - 2017-05-29T01:23:18)
+                                                               new Expecter("separate/20170529_102305A.jpg", true, "2017:05:29 10:23:06", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_102314A.jpg", true, "2017:05:29 10:23:14", 90.0D, 180.0D, true),
+                                                   
+                                                   // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
+                                                               new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
+                                                               new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
+                                                               new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:04", 35.8808881603D, 137.9979396332D, true),
+
+                                                   // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
+                                                               new Expecter("separate/20170529_102409A.jpg", true, "2017:05:29 10:24:10", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_102418A.jpg", true, "2017:05:29 10:24:18", 90.0D, 180.0D, true),
+
+                                                   // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
+                                                               new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
+                                                               new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
+
+                                                   // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
+                                                               new Expecter("separate/20170529_103315A.jpg", true, "2017:05:29 10:33:14", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_103545A.jpg", true, "2017:05:29 10:35:44", 90.0D, 180.0D, true),
+
+                                                   // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
+                                                               new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
+                                                               new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:18", 35.8339846227D, 138.0625408050D, true),
+                                               }),
+
+                               new Fixture(
+                                               "[M2c].GPXが複数のTRKSEGに分割している場合.EXIF時間を基準.eTrex_20J",
+                                               "testdata/separate.tar.gz", 
+                                               "testdata/multiTRKSEG.eTrex_20J.gpx.xml",
+                                               "testdata/cameradata/separate.gpx",
+                                               "testdata/AdjustTime.M2c.separate.ini",
+                                               new Expecter[] {
+                                                       // GPX file
+                                                               new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // out of time ( - 2017-05-29T01:23:18)
+                                                               new Expecter("separate/20170529_102305A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_102314A.jpg", false, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
+                                                               new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
+                                                               new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
+                                                               new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:05", 35.8808641881D, 137.9981065169D, true),
+
+                                                   // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
+                                                               new Expecter("separate/20170529_102409A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_102418A.jpg", false, null, 90.0D, 180.0D, false),
+
+                                                   // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
+                                                               new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
+                                                               new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
+
+                                                   // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
+                                                               new Expecter("separate/20170529_103315A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_103545A.jpg", false, null, 90.0D, 180.0D, false),
+
+                                                   // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
+                                                               new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
+                                                               new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:19", 35.8339889813D, 138.0625394639D, true),
+                                               }),
+
+                               new Fixture(
+                                               "[M2d].GPXが複数のTRKSEGに分割している場合.EXIF時間を基準.eTrex_20J",
+                                               "testdata/separate.tar.gz", 
+                                               "testdata/multiTRKSEG.eTrex_20J.gpx.xml",
+                                               "testdata/cameradata/separate.gpx",
+                                               "testdata/AdjustTime.M2d.separate.ini",
+                                               new Expecter[] {
+                                                       // GPX file
+                                                               new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // out of time ( - 2017-05-29T01:23:18)
+                                                               new Expecter("separate/20170529_102305A.jpg", true, "2017:05:29 10:23:05", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_102314A.jpg", true, "2017:05:29 10:23:14", 90.0D, 180.0D, true),
+                                                   
+                                                   // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
+                                                               new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
+                                                               new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
+                                                               new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:05", 35.8808641881D, 137.9981065169D, true),
+
+                                                   // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
+                                                               new Expecter("separate/20170529_102409A.jpg", true, "2017:05:29 10:24:09", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_102418A.jpg", true, "2017:05:29 10:24:18", 90.0D, 180.0D, true),
+
+                                                   // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
+                                                               new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
+                                                               new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
+
+                                                   // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
+                                                               new Expecter("separate/20170529_103315A.jpg", true, "2017:05:29 10:33:15", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_103545A.jpg", true, "2017:05:29 10:35:45", 90.0D, 180.0D, true),
+
+                                                   // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
+                                                               new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
+                                                               new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:19", 35.8339889813D, 138.0625394639D, true),
+                                               }),
+                               
+                               new Fixture(
+                                               "[M3a].GPXが複数のTRKSEGに分割している場合.FILE_UPDATE時間を基準.eTrex_20Jreverse",
+                                               "testdata/separate.tar.gz", 
+                                               "testdata/multiTRKSEGreverse.eTrex_20J.gpx.xml",
+                                               "testdata/cameradata/separate.gpx",
+                                               "testdata/AdjustTime.M2a.separate.ini",
+                                               new Expecter[] {
+                                                       // GPX file
+                                                               new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // out of time ( - 2017-05-29T01:23:18)
+                                                               new Expecter("separate/20170529_102305A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_102314A.jpg", false, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
+                                                               new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
+                                                               new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
+                                                               new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:04", 35.8808881603D, 137.9979396332D, true),
+
+                                                   // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
+                                                               new Expecter("separate/20170529_102409A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_102418A.jpg", false, null, 90.0D, 180.0D, false),
+
+                                                   // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
+                                                               new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
+                                                               new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
+
+                                                   // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
+                                                               new Expecter("separate/20170529_103315A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_103545A.jpg", false, null, 90.0D, 180.0D, false),
+
+                                                   // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
+                                                               new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
+                                                               new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:18", 35.8339846227D, 138.0625408050D, true),
+                                               }),
+
+                               new Fixture(
+                                               "[M3b].GPXが複数のTRKSEGに分割している場合.FILE_UPDATE時間を基準.eTrex_20Jreverse",
+                                               "testdata/separate.tar.gz", 
+                                               "testdata/multiTRKSEGreverse.eTrex_20J.gpx.xml",
+                                               "testdata/cameradata/separate.gpx",
+                                               "testdata/AdjustTime.M2b.separate.ini",
+                                               new Expecter[] {
+                                                       // GPX file
+                                                               new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
+
+                                                   // out of time ( - 2017-05-29T01:23:18)
+                                                               new Expecter("separate/20170529_102305A.jpg", true, "2017:05:29 10:23:06", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_102314A.jpg", true, "2017:05:29 10:23:14", 90.0D, 180.0D, true),
+                                                   
+                                                   // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
+                                                               new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
+                                                               new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
+                                                               new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:04", 35.8808881603D, 137.9979396332D, true),
+
+                                                   // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
+                                                               new Expecter("separate/20170529_102409A.jpg", true, "2017:05:29 10:24:10", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_102418A.jpg", true, "2017:05:29 10:24:18", 90.0D, 180.0D, true),
+
+                                                   // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
+                                                               new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
+                                                               new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
+
+                                                   // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
+                                                               new Expecter("separate/20170529_103315A.jpg", true, "2017:05:29 10:33:14", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_103545A.jpg", true, "2017:05:29 10:35:44", 90.0D, 180.0D, true),
+
+                                                   // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
+                                                               new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
+                                                               new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:18", 35.8339846227D, 138.0625408050D, true),
+                                               }),
+
+                               new Fixture(
+                                               "[M3c].GPXが複数のTRKSEGに分割している場合.EXIF時間を基準.eTrex_20Jreverse",
+                                               "testdata/separate.tar.gz", 
+                                               "testdata/multiTRKSEGreverse.eTrex_20J.gpx.xml",
+                                               "testdata/cameradata/separate.gpx",
+                                               "testdata/AdjustTime.M2c.separate.ini",
+                                               new Expecter[] {
+                                                       // GPX file
+                                                               new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // out of time ( - 2017-05-29T01:23:18)
+                                                               new Expecter("separate/20170529_102305A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_102314A.jpg", false, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
+                                                               new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
+                                                               new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
+                                                               new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:05", 35.8808641881D, 137.9981065169D, true),
+
+                                                   // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
+                                                               new Expecter("separate/20170529_102409A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_102418A.jpg", false, null, 90.0D, 180.0D, false),
+
+                                                   // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
+                                                               new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
+                                                               new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
+
+                                                   // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
+                                                               new Expecter("separate/20170529_103315A.jpg", false, null, 90.0D, 180.0D, false),
+                                                               new Expecter("separate/20170529_103545A.jpg", false, null, 90.0D, 180.0D, false),
+
+                                                   // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
+                                                               new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
+                                                               new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:19", 35.8339889813D, 138.0625394639D, true),
+                                               }),
+
+                               new Fixture(
+                                               "[M3d].GPXが複数のTRKSEGに分割している場合.EXIF時間を基準.eTrex_20Jreverse",
+                                               "testdata/separate.tar.gz", 
+                                               "testdata/multiTRKSEGreverse.eTrex_20J.gpx.xml",
+                                               "testdata/cameradata/separate.gpx",
+                                               "testdata/AdjustTime.M2d.separate.ini",
+                                               new Expecter[] {
+                                                       // GPX file
+                                                               new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
+                                                   
+                                                   // out of time ( - 2017-05-29T01:23:18)
+                                                               new Expecter("separate/20170529_102305A.jpg", true, "2017:05:29 10:23:05", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_102314A.jpg", true, "2017:05:29 10:23:14", 90.0D, 180.0D, true),
+                                                   
+                                                   // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
+                                                               new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
+                                                               new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
+                                                               new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:05", 35.8808641881D, 137.9981065169D, true),
+
+                                                   // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
+                                                               new Expecter("separate/20170529_102409A.jpg", true, "2017:05:29 10:24:09", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_102418A.jpg", true, "2017:05:29 10:24:18", 90.0D, 180.0D, true),
+
+                                                   // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
+                                                               new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
+                                                               new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
+
+                                                   // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
+                                                               new Expecter("separate/20170529_103315A.jpg", true, "2017:05:29 10:33:15", 90.0D, 180.0D, true),
+                                                               new Expecter("separate/20170529_103545A.jpg", true, "2017:05:29 10:35:45", 90.0D, 180.0D, true),
+
+                                                   // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
+                                                               new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
+                                                               new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:19", 35.8339889813D, 138.0625394639D, true),
+                                               }),
+               };
+
+
+               @Theory
+               public void パラメータテスト(Fixture dataset) throws Exception {
+                       ImportPictureTest.setup(dataset);
+                       ImportPictureTest.testdo(dataset.iniFilePath);
+                       //SimpleDateFormat format = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss", Locale.UK);
                        
-                       new Fixture(
-                                       "[M3a].GPXが複数のTRKSEGに分割している場合.FILE_UPDATE時間を基準.eTrex_20Jreverse",
-                                       "testdata/separate.tar.gz", 
-                                       "testdata/multiTRKSEGreverse.eTrex_20J.gpx.xml",
-                                       "testdata/cameradata/separate.gpx",
-                                       "testdata/AdjustTime.M2a.separate.ini",
-                                       new Expecter[] {
-                                               // GPX file
-                                                       new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
-                                           
-                                           // out of time ( - 2017-05-29T01:23:18)
-                                                       new Expecter("separate/20170529_102305A.jpg", false, null, 90.0D, 180.0D, false),
-                                                       new Expecter("separate/20170529_102314A.jpg", false, null, 90.0D, 180.0D, false),
-                                           
-                                           // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
-                                                       new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
-                                                       new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
-                                                       new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:04", 35.8808881603D, 137.9979396332D, true),
-
-                                           // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
-                                                       new Expecter("separate/20170529_102409A.jpg", false, null, 90.0D, 180.0D, false),
-                                                       new Expecter("separate/20170529_102418A.jpg", false, null, 90.0D, 180.0D, false),
-
-                                           // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
-                                                       new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
-                                                       new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
-
-                                           // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
-                                                       new Expecter("separate/20170529_103315A.jpg", false, null, 90.0D, 180.0D, false),
-                                                       new Expecter("separate/20170529_103545A.jpg", false, null, 90.0D, 180.0D, false),
-
-                                           // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
-                                                       new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
-                                                       new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:18", 35.8339846227D, 138.0625408050D, true),
-                                       }),
-
-                       new Fixture(
-                                       "[M3b].GPXが複数のTRKSEGに分割している場合.FILE_UPDATE時間を基準.eTrex_20Jreverse",
-                                       "testdata/separate.tar.gz", 
-                                       "testdata/multiTRKSEGreverse.eTrex_20J.gpx.xml",
-                                       "testdata/cameradata/separate.gpx",
-                                       "testdata/AdjustTime.M2b.separate.ini",
-                                       new Expecter[] {
-                                               // GPX file
-                                                       new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
-
-                                           // out of time ( - 2017-05-29T01:23:18)
-                                                       new Expecter("separate/20170529_102305A.jpg", true, "2017:05:29 10:23:06", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_102314A.jpg", true, "2017:05:29 10:23:14", 90.0D, 180.0D, true),
-                                           
-                                           // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
-                                                       new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
-                                                       new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
-                                                       new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:04", 35.8808881603D, 137.9979396332D, true),
-
-                                           // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
-                                                       new Expecter("separate/20170529_102409A.jpg", true, "2017:05:29 10:24:10", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_102418A.jpg", true, "2017:05:29 10:24:18", 90.0D, 180.0D, true),
-
-                                           // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
-                                                       new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
-                                                       new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
-
-                                           // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
-                                                       new Expecter("separate/20170529_103315A.jpg", true, "2017:05:29 10:33:14", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_103545A.jpg", true, "2017:05:29 10:35:44", 90.0D, 180.0D, true),
-
-                                           // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
-                                                       new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
-                                                       new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:18", 35.8339846227D, 138.0625408050D, true),
-                                       }),
-
-                       new Fixture(
-                                       "[M3c].GPXが複数のTRKSEGに分割している場合.EXIF時間を基準.eTrex_20Jreverse",
-                                       "testdata/separate.tar.gz", 
-                                       "testdata/multiTRKSEGreverse.eTrex_20J.gpx.xml",
-                                       "testdata/cameradata/separate.gpx",
-                                       "testdata/AdjustTime.M2c.separate.ini",
-                                       new Expecter[] {
-                                               // GPX file
-                                                       new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
-                                           
-                                           // out of time ( - 2017-05-29T01:23:18)
-                                                       new Expecter("separate/20170529_102305A.jpg", false, null, 90.0D, 180.0D, false),
-                                                       new Expecter("separate/20170529_102314A.jpg", false, null, 90.0D, 180.0D, false),
-                                           
-                                           // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
-                                                       new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
-                                                       new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
-                                                       new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:05", 35.8808641881D, 137.9981065169D, true),
-
-                                           // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
-                                                       new Expecter("separate/20170529_102409A.jpg", false, null, 90.0D, 180.0D, false),
-                                                       new Expecter("separate/20170529_102418A.jpg", false, null, 90.0D, 180.0D, false),
-
-                                           // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
-                                                       new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
-                                                       new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
-
-                                           // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
-                                                       new Expecter("separate/20170529_103315A.jpg", false, null, 90.0D, 180.0D, false),
-                                                       new Expecter("separate/20170529_103545A.jpg", false, null, 90.0D, 180.0D, false),
-
-                                           // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
-                                                       new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
-                                                       new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:19", 35.8339889813D, 138.0625394639D, true),
-                                       }),
-
-                       new Fixture(
-                                       "[M3d].GPXが複数のTRKSEGに分割している場合.EXIF時間を基準.eTrex_20Jreverse",
-                                       "testdata/separate.tar.gz", 
-                                       "testdata/multiTRKSEGreverse.eTrex_20J.gpx.xml",
-                                       "testdata/cameradata/separate.gpx",
-                                       "testdata/AdjustTime.M2d.separate.ini",
-                                       new Expecter[] {
-                                               // GPX file
-                                                       new Expecter("separate/separate_.gpx", true, null, 90.0D, 180.0D, false),
-                                           
-                                           // out of time ( - 2017-05-29T01:23:18)
-                                                       new Expecter("separate/20170529_102305A.jpg", true, "2017:05:29 10:23:05", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_102314A.jpg", true, "2017:05:29 10:23:14", 90.0D, 180.0D, true),
-                                           
-                                           // in TRKSEG(1) (2017-05-29T01:23:18 - 2017-05-29T01:24:05)
-                                                       new Expecter("separate/20170529_102318A.jpg", true, "2017:05:29 10:23:18", 35.8812697884D, 137.9952202085D, true),
-                                                       new Expecter("separate/20170529_102322A.jpg", true, "2017:05:29 10:23:22", 35.8810500987D, 137.9951669835D, true),
-                                                       new Expecter("separate/20170529_102405A.jpg", true, "2017:05:29 10:24:05", 35.8808641881D, 137.9981065169D, true),
-
-                                           // out of time (2017-05-29T01:24:05 - 2017-05-29T01:24:37)
-                                                       new Expecter("separate/20170529_102409A.jpg", true, "2017:05:29 10:24:09", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_102418A.jpg", true, "2017:05:29 10:24:18", 90.0D, 180.0D, true),
-
-                                           // in TRKSEG(2) (2017-05-29T01:24:37 - 2017-05-29T01:33:03)
-                                                       new Expecter("separate/20170529_102448A.jpg", true, "2017:05:29 10:24:48", 35.8788877353D, 138.0039562471D, true),
-                                                       new Expecter("separate/20170529_103246A.jpg", true, "2017:05:29 10:32:46", 35.8405660931D, 138.0353022180D, true),
-
-                                           // out of time (2017-05-29T01:33:03 - 2017-05-29T01:35:53)
-                                                       new Expecter("separate/20170529_103315A.jpg", true, "2017:05:29 10:33:15", 90.0D, 180.0D, true),
-                                                       new Expecter("separate/20170529_103545A.jpg", true, "2017:05:29 10:35:45", 90.0D, 180.0D, true),
-
-                                           // in TRKSEG(3) (2017-05-29T01:35:53 - 2017-05-29T01:47:35)
-                                                       new Expecter("separate/20170529_103615A.jpg", true, "2017:05:29 10:36:14", 35.8359798510D, 138.0600296706D, true),
-                                                       new Expecter("separate/20170529_104119A.jpg", true, "2017:05:29 10:41:19", 35.8339889813D, 138.0625394639D, true),
-                                       }),
-       };
-
-
-       @Theory
-       public void パラメータテスト(Fixture dataset) throws Exception {
-               ImportPictureTest.setup(dataset);
-               ImportPictureTest.testdo(dataset.iniFilePath);
-               //SimpleDateFormat format = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss", Locale.UK);
+                       Expecter[] es = dataset.expecters;
+                       AppParameters params = new AppParameters(dataset.iniFilePath);
+                       File outDir = new File(params.getProperty(AppParameters.IMG_OUTPUT_FOLDER));
+                       for (int i = 0; i < es.length; i++) {
+                       File file = new File(outDir, es[i].value);
+                       System.out.println("[JUnit.debug] assert file='"+ file.getAbsolutePath() +"'");
+                       assertThat(file.exists(), is(es[i].expect));
+                       if (es[i].timeStr != null) {
+                               // JPEG メタデータが存在すること
+                       ImageMetadata meta = Imaging.getMetadata(file);
+                       
+                       // メタデータは インスタンスJpegImageMetadata であること
+                       assertThat((meta instanceof JpegImageMetadata), is(true));
+                       
+                       JpegImageMetadata jpegMetadata = (JpegImageMetadata)meta;
+                       assertNotNull(jpegMetadata);
+                       
+                       // EXIFデータが存在すること
+                       TiffImageMetadata exif = jpegMetadata.getExif();
+                       assertNotNull(exif);
+                       
+                       // EXIF-TIME が正しく設定されていること
+                       String exifTime = ImportPicture.toEXIFString(ImportPicture.toEXIFDate(exif.getFieldValue(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL)[0]));
+                       System.out.println("[debug] exifTime = '"+ exifTime +"' <--> '"+ es[i].timeStr +"'");
+                       assertThat(exifTime, is(es[i].timeStr));
+                       
+                       // LAT,LON
+                       GPSInfo gpsInfo = exif.getGPS();
+                       if (es[i].latD != 90.0D) {
+                               //assertThat(comparePosition(gpsInfo.getLatitudeAsDegreesNorth(), es[i].latD), is(true));
+                               assertThat(String.format("%.7f", gpsInfo.getLatitudeAsDegreesNorth()), is(comparePosition(es[i].latD)));
+                       }
+                       if (es[i].lonD != 180.0D) {
+                               //assertThat(comparePosition(gpsInfo.getLongitudeAsDegreesEast(), es[i].lonD), is(true));
+                               assertThat(String.format("%.7f", gpsInfo.getLongitudeAsDegreesEast()), is(comparePosition(es[i].lonD)));
+                       }
+                       }
+                       }
+               }
                
-               Expecter[] es = dataset.expecters;
-               AppParameters params = new AppParameters(dataset.iniFilePath);
-               File outDir = new File(params.getProperty(AppParameters.IMG_OUTPUT_FOLDER));
-               for (int i = 0; i < es.length; i++) {
-               File file = new File(outDir, es[i].value);
-               System.out.println("[JUnit.debug] assert file='"+ file.getAbsolutePath() +"'");
-               assertThat(file.exists(), is(es[i].expect));
-               if (es[i].timeStr != null) {
-                       // JPEG メタデータが存在すること
-                ImageMetadata meta = Imaging.getMetadata(file);
-                
-                // メタデータは インスタンスJpegImageMetadata であること
-               assertThat((meta instanceof JpegImageMetadata), is(true));
-                
-                JpegImageMetadata jpegMetadata = (JpegImageMetadata)meta;
-                assertNotNull(jpegMetadata);
-                
-                // EXIFデータが存在すること
-                TiffImageMetadata exif = jpegMetadata.getExif();
-                assertNotNull(exif);
-                
-                // EXIF-TIME が正しく設定されていること
-               String exifTime = ImportPicture.toEXIFString(ImportPicture.toEXIFDate(exif.getFieldValue(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL)[0]));
-               System.out.println("[debug] exifTime = '"+ exifTime +"' <--> '"+ es[i].timeStr +"'");
-               assertThat(exifTime, is(es[i].timeStr));
-               
-               // LAT,LON
-               GPSInfo gpsInfo = exif.getGPS();
-               if (es[i].latD != 90.0D) {
-                       //assertThat(comparePosition(gpsInfo.getLatitudeAsDegreesNorth(), es[i].latD), is(true));
-                       assertThat(String.format("%.7f", gpsInfo.getLatitudeAsDegreesNorth()), is(comparePosition(es[i].latD)));
-               }
-               if (es[i].lonD != 180.0D) {
-                       //assertThat(comparePosition(gpsInfo.getLongitudeAsDegreesEast(), es[i].lonD), is(true));
-                       assertThat(String.format("%.7f", gpsInfo.getLongitudeAsDegreesEast()), is(comparePosition(es[i].lonD)));
-               }
-               }
+               static String comparePosition(double b) {
+               return String.format("%.7f", b);
                }
-       }
-       
-       static String comparePosition(double b) {
-               //System.out.println(String.format("a=%.10f : b=%.10f", a, b));
                
-               BigDecimal bB = BigDecimal.valueOf(b);
-        int degreesB = (bB.setScale(0, RoundingMode.DOWN)).intValue();
-        bB = bB.subtract(BigDecimal.valueOf(degreesB));
-        bB = bB.multiply(BigDecimal.valueOf(60));
-        int minutesB = (bB.setScale(0, RoundingMode.DOWN)).intValue();
-        bB = bB.subtract(BigDecimal.valueOf(minutesB));
-        bB = bB.multiply(BigDecimal.valueOf(60));
-        int secondsB = (bB.setScale(0, RoundingMode.DOWN)).intValue();
-
-               BigDecimal aB = BigDecimal.valueOf(secondsB);
-               aB = aB.divide(BigDecimal.valueOf(60), 7, RoundingMode.HALF_UP);
-               aB = aB.add(BigDecimal.valueOf(minutesB));
-               aB = aB.divide(BigDecimal.valueOf(60), 7, RoundingMode.HALF_UP);
-               aB = aB.add(BigDecimal.valueOf(degreesB));
+               /**
+                * 小数点第8位で四捨五入した文字列
+                * @param d
+                * @return
+                */
+               static String round7(double d) {
+                       return String.format("%.7f", d);
+               }
                
-        /*
-               BigDecimal aB = BigDecimal.valueOf(a);
-        int degreesA = (aB.setScale(0, RoundingMode.DOWN)).intValue();
-        aB = aB.subtract(BigDecimal.valueOf(degreesA));
-        aB = aB.multiply(BigDecimal.valueOf(60));
-        int minutesA = (aB.setScale(0, RoundingMode.DOWN)).intValue();
-        aB = aB.subtract(BigDecimal.valueOf(minutesA));
-        aB = aB.multiply(BigDecimal.valueOf(60));
-        int secondsA = (aB.setScale(0, RoundingMode.DOWN)).intValue();
-               System.out.println(String.format("a=%2d : b=%2d", degreesA, degreesB));
-        if (degreesA != degreesB) {
-               return false;
-        }
-               System.out.println(String.format("a=%2d : b=%2d", minutesA, minutesB));
-        if (minutesA != minutesB) {
-               return false;
-        }
-               System.out.println(String.format("a=%2d : b=%2d", secondsA, secondsB));
-        if (secondsA != secondsB) {
-               return false;
-        }
-               return true;
-        */
-        return String.format("%.7f", aB.doubleValue());
-       }
-       
-       /**
-        * 小数点第8位で四捨五入した文字列
-        * @param d
-        * @return
-        */
-       static String round7(double d) {
-               return String.format("%.7f", d);
        }
        
        static void setup(Fixture dataset) throws IOException {