diff --git a/test/osm/jp/coverage/AllTest.java b/test/osm/jp/coverage/AllTest.java
new file mode 100644
index 0000000..3e1c7a5
--- /dev/null
+++ b/test/osm/jp/coverage/AllTest.java
@@ -0,0 +1,39 @@
+package osm.jp.coverage;
+
+import java.io.File;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+    osm.jp.coverage.busstop.AllTest.class,
+    osm.jp.coverage.fuel.AllTest.class,
+    osm.jp.coverage.postoffice.AllTest.class,
+    osm.jp.coverage.police.AllTest.class
+})
+public class AllTest {
+
+    @BeforeClass
+    public static void setUpClass() throws Exception {
+        File dir = new File("database");
+        dir.deleteOnExit();
+        dir.mkdir();
+    }
+
+    @AfterClass
+    public static void tearDownClass() throws Exception {
+    }
+
+    @Before
+    public void setUp() throws Exception {
+    }
+
+    @After
+    public void tearDown() throws Exception {
+    }
+    
+}
diff --git a/test/osm/jp/coverage/PoiTest.java b/test/osm/jp/coverage/PoiTest.java
new file mode 100644
index 0000000..c307fdb
--- /dev/null
+++ b/test/osm/jp/coverage/PoiTest.java
@@ -0,0 +1,122 @@
+package osm.jp.coverage;
+
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import jp.co.areaweb.tools.database.DatabaseTool;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
+import osm.jp.coverage.postoffice.PostofficeTest;
+
+public class PoiTest {
+    
+    /**
+     * 許容できる誤差は 0.00000009D 固定
+     * @param rset      調べる値(フィールド名:"lat" or "lon")
+     * @param latStr    基準となる値
+     * @param lonStr    許容できる誤差
+     * @return
+     * @throws SQLException 
+     */
+    public static boolean checkRenge(ResultSet rset, String latStr, String lonStr) throws SQLException {
+        return checkRenge(rset, latStr, lonStr, 0.00000009D);
+    }
+
+    /**
+     * 
+     * @param rset      調べる値(フィールド名:"lat" or "lon")
+     * @param latStr    基準となる値
+     * @param lonStr    基準となる値
+     * @param delta     許容できる誤差
+     * @return
+     * @throws SQLException 
+     */
+    public static boolean checkRenge(ResultSet rset, String latStr, String lonStr,  double delta) throws SQLException {
+        if (checkRenge(rset.getDouble("lat"), latStr, delta)) {
+            if (checkRenge(rset.getDouble("lon"), lonStr, delta)) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
+    /**
+     * 
+     * @param d1    調べる値
+     * @param str   基準となる値
+     * @param delta 許容できる誤差
+     * @return      許容値内ならばtrue
+     * @throws SQLException 
+     */
+    public static boolean checkRenge(double d1, String str, double delta) throws SQLException {
+        double base = Double.parseDouble(str);
+        double up = d1 + delta;
+        double down = d1 - delta;
+        boolean ret = true;
+        if (Double.compare(base, up) > 0) {
+            ret = false;
+        }
+        if (Double.compare(base, down) < 0) {
+            ret = false;
+        }
+        System.out.println("d1: "+ d1 +" : "+ str +" --> "+ (ret ? "IN" : "out"));
+        return ret;
+    }
+    
+    /**
+     * 
+     * 
+     * @param tableName         DbPostoffice.TABLE_NAME
+     * @param lat   35.43035D;  // 35.43035  35.4305614, 139.3662339
+     * @param lon   139.36622D
+     * @param fixed1
+     * @return 
+     */
+    public String getRefid(String tableName, double lat, double lon, int fixed1) {
+        String ret = "";
+        
+        Connection hsqldb = null;
+        try {
+            hsqldb =  DatabaseTool.openDb("database");
+            
+            String where = String.format("(lat > '%s') and (lat < '%s') and (lon > '%s') and (lon < '%s')", 
+                    String.valueOf(lat-0.001D), String.valueOf(lat+0.001D), 
+                    String.valueOf(lon-0.001D), String.valueOf(lon+0.001D));
+            String sql = String.format("SELECT * FROM %s WHERE %s", tableName, where);
+            System.out.println(sql);
+            PreparedStatement ps1 = hsqldb.prepareStatement(sql);
+            try (ResultSet rset1 = ps1.executeQuery()) {
+                while (rset1.next()) {
+                    int v = rset1.getInt("fixed1");
+                    System.out.println("{");
+                    System.out.println("idref:" + rset1.getString("idref"));
+                    System.out.println("gid:" + rset1.getString("gid"));
+                    System.out.println("area:" + rset1.getInt("area"));
+                    System.out.println("fixed:" + rset1.getInt("fixed"));
+                    System.out.println("fixed1:" + v);
+                    System.out.println("lat:" + rset1.getDouble("lat"));
+                    System.out.println("lon:" + rset1.getDouble("lon"));
+                    System.out.println("}");
+                    if (ret.length() > 0) {
+                        ret += ",";
+                    }
+                    ret += rset1.getString("idref");
+                    assertThat(v, is(fixed1));
+                    return ret;
+                }
+                fail("該当のデータがミツカラナイ");
+            }
+        } catch (IOException | ClassNotFoundException | SQLException ex) {
+            Logger.getLogger(PostofficeTest.class.getName()).log(Level.SEVERE, null, ex);
+            fail(ex.toString());
+        } finally {
+            DatabaseTool.closeDb(hsqldb);
+        }
+        return ret;
+    }
+}
diff --git a/test/osm/jp/coverage/busstop/BusstopTest.java b/test/osm/jp/coverage/busstop/BusstopTest.java
index acbf41e..6314b0b 100644
--- a/test/osm/jp/coverage/busstop/BusstopTest.java
+++ b/test/osm/jp/coverage/busstop/BusstopTest.java
@@ -19,6 +19,7 @@
 import osm.jp.api.HttpPOST;
 import osm.jp.api.Japan;
 import osm.jp.api.RectArea;
+import osm.jp.coverage.PoiTest;
 import static osm.jp.coverage.busstop.Busstop.NEER;
 import osm.jp.coverage.fuel.Fuel;
 
@@ -26,7 +27,7 @@
  *
  * @author yuu
  */
-public class BusstopTest {
+public class BusstopTest extends PoiTest {
     @Before
     public void setUp() throws Exception {
     }
@@ -265,27 +266,4 @@
         }
     }
     
-    boolean checkRenge(ResultSet rset, String latStr, String lonStr) throws SQLException {
-        if (checkRenge(rset.getDouble("lat"), latStr)) {
-            if (checkRenge(rset.getDouble("lon"), lonStr)) {
-                return true;
-            }
-        }
-        return false;
-    }
-    
-    boolean checkRenge(double d1, String str) throws SQLException {
-        double base = Double.parseDouble(str);
-        double up = d1 + 0.00000009D;
-        double down = d1 - 0.00000009D;
-        boolean ret = true;
-        if (Double.compare(base, up) > 0) {
-            ret = false;
-        }
-        if (Double.compare(base, down) < 0) {
-            ret = false;
-        }
-        System.out.println("d1: "+ d1 +" : "+ str +" --> "+ (ret ? "IN" : "out"));
-        return ret;
-    }
 }
diff --git a/test/osm/jp/coverage/fuel/FuelTest.java b/test/osm/jp/coverage/fuel/FuelTest.java
index 1dba643..5e0d8c2 100644
--- a/test/osm/jp/coverage/fuel/FuelTest.java
+++ b/test/osm/jp/coverage/fuel/FuelTest.java
@@ -12,9 +12,10 @@
 import static org.junit.Assert.*;
 import org.junit.runners.MethodSorters;
 import osm.jp.api.HttpPOST;
+import osm.jp.coverage.PoiTest;
 
 @FixMethodOrder (MethodSorters.NAME_ASCENDING)
-public class FuelTest {
+public class FuelTest extends PoiTest{
     @Before
     public void setUp() throws Exception {
     }
@@ -73,30 +74,6 @@
         }
     }
     
-    boolean checkRenge(ResultSet rset, String latStr, String lonStr) throws SQLException {
-        if (checkRenge(rset.getDouble("lat"), latStr)) {
-            if (checkRenge(rset.getDouble("lon"), lonStr)) {
-                return true;
-            }
-        }
-        return false;
-    }
-    
-    boolean checkRenge(double d1, String str) throws SQLException {
-        double base = Double.parseDouble(str);
-        double up = d1 + 0.00000009D;
-        double down = d1 - 0.00000009D;
-        boolean ret = true;
-        if (Double.compare(base, up) > 0) {
-            ret = false;
-        }
-        if (Double.compare(base, down) < 0) {
-            ret = false;
-        }
-        System.out.println("d1: "+ d1 +" : "+ str +" --> "+ (ret ? "IN" : "out"));
-        return ret;
-    }
-    
     /**
      * OSM: 5338111023 removed:amenity=fuel 35.4305614, 139.3662339
      * GML: 14, n00375
@@ -123,7 +100,7 @@
         
         double lat = 35.43035D;  // 35.43035  35.4305614, 139.3662339
         double lon = 139.36622D;  //139.36622
-        String idrefs = getRefid(lat, lon);
+        String idrefs = getRefid(DbFuel.TABLE_NAME, lat, lon, 50);
         System.out.println(idrefs);
     }
 
@@ -135,53 +112,7 @@
     public void test92_normal() {
         double lat = 35.4214195D;
         double lon = 139.3600994D;
-        String idrefs = getRefid(lat, lon);
+        String idrefs = getRefid(DbFuel.TABLE_NAME, lat, lon, 50);
         System.out.println(idrefs);
     }
-
-    /**
-     * 
-     * 
-     * @param lat   35.43035D;  // 35.43035  35.4305614, 139.3662339
-     * @param lon   139.36622D
-     * @return 
-     */
-    public String getRefid(double lat, double lon) {
-        String ret = "";
-        
-        Connection hsqldb = null;
-        try {
-            hsqldb =  DatabaseTool.openDb("database");
-            
-            String where = String.format("(lat > '%s') and (lat < '%s') and (lon > '%s') and (lon < '%s')", 
-                    String.valueOf(lat-0.001D), String.valueOf(lat+0.001D), 
-                    String.valueOf(lon-0.001D), String.valueOf(lon+0.001D));
-            String sql = String.format("SELECT * FROM %s WHERE %s", DbFuel.TABLE_NAME, where);
-            System.out.println(sql);
-            PreparedStatement ps1 = hsqldb.prepareStatement(sql);
-            try (ResultSet rset1 = ps1.executeQuery()) {
-                while (rset1.next()) {
-                    System.out.println("{");
-                    System.out.println("idref:" + rset1.getString("idref"));
-                    System.out.println("gid:" + rset1.getString("gid"));
-                    System.out.println("area:" + rset1.getInt("area"));
-                    System.out.println("fixed:" + rset1.getInt("fixed"));
-                    System.out.println("fixed1:" + rset1.getInt("fixed1"));
-                    System.out.println("lat:" + rset1.getDouble("lat"));
-                    System.out.println("lon:" + rset1.getDouble("lon"));
-                    System.out.println("}");
-                    if (ret.length() > 0) {
-                        ret += ",";
-                    }
-                    ret += rset1.getString("idref");
-                }
-            }
-        } catch (IOException | ClassNotFoundException | SQLException ex) {
-            Logger.getLogger(FuelTest.class.getName()).log(Level.SEVERE, null, ex);
-            fail(ex.toString());
-        } finally {
-            DatabaseTool.closeDb(hsqldb);
-        }
-        return ret;
-    }
 }
diff --git a/test/osm/jp/coverage/police/PoliceTest.java b/test/osm/jp/coverage/police/PoliceTest.java
index e6957d5..c8d2f05 100644
--- a/test/osm/jp/coverage/police/PoliceTest.java
+++ b/test/osm/jp/coverage/police/PoliceTest.java
@@ -15,9 +15,10 @@
 import org.junit.runners.MethodSorters;
 import org.xml.sax.SAXException;
 import osm.jp.api.HttpPOST;
+import osm.jp.coverage.PoiTest;
 
 @FixMethodOrder (MethodSorters.NAME_ASCENDING)
-public class PoliceTest {
+public class PoliceTest extends PoiTest {
     @Before
     public void setUp() throws Exception {
     }
@@ -44,59 +45,10 @@
      */
     @Test
     public void test01_dataread() {
-        Connection hsqldb = null;
-        try {
-            hsqldb =  DatabaseTool.openDb("database");
-            
-            double lat = 35.43035D;  // 35.43035  35.4305614, 139.3662339
-            double lon = 139.36622D;  //139.36622
-            String where = String.format("(lat > '%s') and (lat < '%s') and (lon > '%s') and (lon < '%s')", 
-                    String.valueOf(lat-0.001D), String.valueOf(lat+0.001D), 
-                    String.valueOf(lon-0.001D), String.valueOf(lon+0.001D));
-            String sql = String.format("SELECT * FROM %s WHERE %s", DbPolice.TABLE_NAME, where);
-            PreparedStatement ps1 = hsqldb.prepareStatement(sql);
-            try (ResultSet rset1 = ps1.executeQuery()) {
-                while (rset1.next()) {
-                    System.out.println(rset1.getString("idref"));
-                    System.out.println(rset1.getString("gid"));
-                    System.out.println(rset1.getInt("area"));
-                    System.out.println(rset1.getInt("fixed"));
-                    System.out.println(rset1.getInt("fixed1"));
-                    System.out.println(rset1.getDouble("lat"));
-                    System.out.println(rset1.getDouble("lon"));
-                }
-            }
-            
-        } catch (IOException | ClassNotFoundException | SQLException ex) {
-            Logger.getLogger(PoliceTest.class.getName()).log(Level.SEVERE, null, ex);
-            fail(ex.toString());
-        } finally {
-            DatabaseTool.closeDb(hsqldb);
-        }
-    }
-    
-    boolean checkRenge(ResultSet rset, String latStr, String lonStr) throws SQLException {
-        if (checkRenge(rset.getDouble("lat"), latStr)) {
-            if (checkRenge(rset.getDouble("lon"), lonStr)) {
-                return true;
-            }
-        }
-        return false;
-    }
-    
-    boolean checkRenge(double d1, String str) throws SQLException {
-        double base = Double.parseDouble(str);
-        double up = d1 + 0.00000009D;
-        double down = d1 - 0.00000009D;
-        boolean ret = true;
-        if (Double.compare(base, up) > 0) {
-            ret = false;
-        }
-        if (Double.compare(base, down) < 0) {
-            ret = false;
-        }
-        System.out.println("d1: "+ d1 +" : "+ str +" --> "+ (ret ? "IN" : "out"));
-        return ret;
+        double lat = 35.43035D;  // 35.43035  35.4305614, 139.3662339
+        double lon = 139.36622D;  //139.36622
+        String idrefs = getRefid(DbPolice.TABLE_NAME, lat, lon, 50);
+        System.out.println(idrefs);
     }
     
     /**
@@ -105,26 +57,9 @@
      */
     @Test
     public void test91_removed() {
-        Connection hsqldb = null;
-        String sql1 = String.format("SELECT * FROM %s where idref='%s'", HttpPOST.TABLE_NAME, "5338111023");
-        try {
-            hsqldb =  DatabaseTool.openDb("database");
-            try (PreparedStatement ps1 = hsqldb.prepareStatement(sql1)){
-                try (ResultSet rset1 = ps1.executeQuery()) {
-                    assertTrue(rset1.next());
-                }
-            }
-        }
-        catch(Exception e){
-            e.printStackTrace();
-            fail(e.toString());
-        } finally {
-            DatabaseTool.closeDb(hsqldb);
-        }
-        
         double lat = 35.43035D;  // 35.43035  35.4305614, 139.3662339
         double lon = 139.36622D;  //139.36622
-        String idrefs = getRefid(lat, lon);
+        String idrefs = getRefid(DbPolice.TABLE_NAME, lat, lon, 50);
         System.out.println(idrefs);
     }
 
@@ -136,53 +71,7 @@
     public void test92_normal() {
         double lat = 35.4214195D;
         double lon = 139.3600994D;
-        String idrefs = getRefid(lat, lon);
+        String idrefs = getRefid(DbPolice.TABLE_NAME, lat, lon, 50);
         System.out.println(idrefs);
     }
-
-    /**
-     * 
-     * 
-     * @param lat   35.43035D;  // 35.43035  35.4305614, 139.3662339
-     * @param lon   139.36622D
-     * @return 
-     */
-    public String getRefid(double lat, double lon) {
-        String ret = "";
-        
-        Connection hsqldb = null;
-        try {
-            hsqldb =  DatabaseTool.openDb("database");
-            
-            String where = String.format("(lat > '%s') and (lat < '%s') and (lon > '%s') and (lon < '%s')", 
-                    String.valueOf(lat-0.001D), String.valueOf(lat+0.001D), 
-                    String.valueOf(lon-0.001D), String.valueOf(lon+0.001D));
-            String sql = String.format("SELECT * FROM %s WHERE %s", DbPolice.TABLE_NAME, where);
-            System.out.println(sql);
-            PreparedStatement ps1 = hsqldb.prepareStatement(sql);
-            try (ResultSet rset1 = ps1.executeQuery()) {
-                while (rset1.next()) {
-                    System.out.println("{");
-                    System.out.println("idref:" + rset1.getString("idref"));
-                    System.out.println("gid:" + rset1.getString("gid"));
-                    System.out.println("area:" + rset1.getInt("area"));
-                    System.out.println("fixed:" + rset1.getInt("fixed"));
-                    System.out.println("fixed1:" + rset1.getInt("fixed1"));
-                    System.out.println("lat:" + rset1.getDouble("lat"));
-                    System.out.println("lon:" + rset1.getDouble("lon"));
-                    System.out.println("}");
-                    if (ret.length() > 0) {
-                        ret += ",";
-                    }
-                    ret += rset1.getString("idref");
-                }
-            }
-        } catch (IOException | ClassNotFoundException | SQLException ex) {
-            Logger.getLogger(PoliceTest.class.getName()).log(Level.SEVERE, null, ex);
-            fail(ex.toString());
-        } finally {
-            DatabaseTool.closeDb(hsqldb);
-        }
-        return ret;
-    }
 }
diff --git a/test/osm/jp/coverage/postoffice/PostofficeTest.java b/test/osm/jp/coverage/postoffice/PostofficeTest.java
index abd5064..7293a0e 100644
--- a/test/osm/jp/coverage/postoffice/PostofficeTest.java
+++ b/test/osm/jp/coverage/postoffice/PostofficeTest.java
@@ -1,21 +1,14 @@
 package osm.jp.coverage.postoffice;
 
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import jp.co.areaweb.tools.database.DatabaseTool;
-import static org.hamcrest.CoreMatchers.is;
 import org.junit.*;
 import static org.junit.Assert.*;
 import org.junit.runners.MethodSorters;
-import osm.jp.api.HttpPOST;
+import osm.jp.coverage.PoiTest;
 
 @FixMethodOrder (MethodSorters.NAME_ASCENDING)
-public class PostofficeTest {
+public class PostofficeTest extends PoiTest {
     @Before
     public void setUp() throws Exception {
     }
@@ -45,7 +38,7 @@
     public void test01_dataread() {
         double lat = 35.4316208D;  // 35.43035  35.4316208, 139.4094861
         double lon = 139.4094861D;  //139.36622
-        String idrefs = getRefid(lat, lon, 50);
+        String idrefs = getRefid(DbPostoffice.TABLE_NAME, lat, lon, 50);
         System.out.println(idrefs);
     }
     
@@ -57,82 +50,8 @@
     public void test92_normal() {
         double lat = 44.105486D;
         double lon = 145.246918D;
-        String idrefs = getRefid(lat, lon, 0);
+        String idrefs = getRefid(DbPostoffice.TABLE_NAME, lat, lon, 0);
         System.out.println(idrefs);
     }
     
-    boolean checkRenge(ResultSet rset, String latStr, String lonStr) throws SQLException {
-        if (checkRenge(rset.getDouble("lat"), latStr)) {
-            if (checkRenge(rset.getDouble("lon"), lonStr)) {
-                return true;
-            }
-        }
-        return false;
-    }
-    
-    boolean checkRenge(double d1, String str) throws SQLException {
-        double base = Double.parseDouble(str);
-        double up = d1 + 0.0001D;
-        double down = d1 - 0.0001D;
-        boolean ret = true;
-        if (Double.compare(base, up) > 0) {
-            ret = false;
-        }
-        if (Double.compare(base, down) < 0) {
-            ret = false;
-        }
-        System.out.println("d1: "+ d1 +" : "+ str +" --> "+ (ret ? "IN" : "out"));
-        return ret;
-    }
-
-    /**
-     * 
-     * 
-     * @param lat   35.43035D;  // 35.43035  35.4305614, 139.3662339
-     * @param lon   139.36622D
-     * @param fixed1
-     * @return 
-     */
-    public String getRefid(double lat, double lon, int fixed1) {
-        String ret = "";
-        
-        Connection hsqldb = null;
-        try {
-            hsqldb =  DatabaseTool.openDb("database");
-            
-            String where = String.format("(lat > '%s') and (lat < '%s') and (lon > '%s') and (lon < '%s')", 
-                    String.valueOf(lat-0.001D), String.valueOf(lat+0.001D), 
-                    String.valueOf(lon-0.001D), String.valueOf(lon+0.001D));
-            String sql = String.format("SELECT * FROM %s WHERE %s", DbPostoffice.TABLE_NAME, where);
-            System.out.println(sql);
-            PreparedStatement ps1 = hsqldb.prepareStatement(sql);
-            try (ResultSet rset1 = ps1.executeQuery()) {
-                while (rset1.next()) {
-                    int v = rset1.getInt("fixed1");
-                    System.out.println("{");
-                    System.out.println("idref:" + rset1.getString("idref"));
-                    System.out.println("gid:" + rset1.getString("gid"));
-                    System.out.println("area:" + rset1.getInt("area"));
-                    System.out.println("fixed:" + rset1.getInt("fixed"));
-                    System.out.println("fixed1:" + v);
-                    System.out.println("lat:" + rset1.getDouble("lat"));
-                    System.out.println("lon:" + rset1.getDouble("lon"));
-                    System.out.println("}");
-                    if (ret.length() > 0) {
-                        ret += ",";
-                    }
-                    ret += rset1.getString("idref");
-                    assertThat(v, is(fixed1));
-                    return ret;
-                }
-                fail("該当のデータがミツカラナイ");
-            }
-        } catch (IOException | ClassNotFoundException | SQLException ex) {
-            Logger.getLogger(PostofficeTest.class.getName()).log(Level.SEVERE, null, ex);
-            fail(ex.toString());
-        } finally {
-            DatabaseTool.closeDb(hsqldb);
-        }
-        return ret;
-    }
 }