diff --git a/src/osm/jp/coverage/fuel/DbFuel.java b/src/osm/jp/coverage/fuel/DbFuel.java index cf038fb..eec0387 100644 --- a/src/osm/jp/coverage/fuel/DbFuel.java +++ b/src/osm/jp/coverage/fuel/DbFuel.java @@ -393,7 +393,7 @@ } /** - * removedデータをファイル「」に追記する + * removedデータをファイルに出力する * * @param removedFile * @throws SQLException @@ -405,6 +405,7 @@ String sortStr = "ORDER BY area,gmlid"; String sql = String.format("SELECT * %s %s %s", fromStr, whereStr, sortStr); + removedFile.deleteOnExit(); try (FileWriter fw = new FileWriter(removedFile); PreparedStatement ps1 = hsqldb.prepareStatement(sql)) { diff --git a/test/osm/jp/coverage/DbTest.java b/test/osm/jp/coverage/DbTest.java index 178be2e..dc49f4b 100644 --- a/test/osm/jp/coverage/DbTest.java +++ b/test/osm/jp/coverage/DbTest.java @@ -266,4 +266,37 @@ } return -1; } + + + public static boolean checkRenge(ResultSet rset, String latStr, String lonStr) throws SQLException { + return checkRenge(rset, latStr, lonStr, 0.0001D); + } + + 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; + } + + public static boolean checkRenge(double d1, String str) throws SQLException { + return checkRenge(d1, str, 0.0001D); + } + + 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; + } } \ No newline at end of file diff --git a/test/osm/jp/coverage/fuel/DbExistTest.java b/test/osm/jp/coverage/fuel/DbExistTest.java index cae8f4a..f69b13e 100644 --- a/test/osm/jp/coverage/fuel/DbExistTest.java +++ b/test/osm/jp/coverage/fuel/DbExistTest.java @@ -3,7 +3,6 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; -import java.sql.SQLException; import java.util.ArrayList; import jp.co.areaweb.tools.database.DatabaseTool; import static org.hamcrest.CoreMatchers.is; @@ -122,7 +121,7 @@ try (ResultSet rset1 = ps1.executeQuery()) { if (rset1.next()) { assertThat(rset1.getInt("score"), is(50)); - assertThat(checkRenge(rset1, "35.4367770", "139.4035710"), is(true)); + assertThat(DbTest.checkRenge(rset1, "35.4367770", "139.4035710"), is(true)); } else { fail(); @@ -134,7 +133,7 @@ try (ResultSet rset1 = ps1.executeQuery()) { if (rset1.next()) { assertThat(rset1.getInt("score"), is(1)); - assertThat(checkRenge(rset1, "35.4330583", "139.4006876"), is(true)); + assertThat(DbTest.checkRenge(rset1, "35.4330583", "139.4006876"), is(true)); } else { fail(); @@ -146,7 +145,7 @@ try (ResultSet rset1 = ps1.executeQuery()) { if (rset1.next()) { assertThat(rset1.getInt("score"), is(1)); - assertThat(checkRenge(rset1, "45.3985390", "141.6882450"), is(true)); + assertThat(DbTest.checkRenge(rset1, "45.3985390", "141.6882450"), is(true)); } else { fail(); @@ -158,7 +157,7 @@ try (ResultSet rset1 = ps1.executeQuery()) { if (rset1.next()) { assertThat(rset1.getInt("score"), is(1)); - assertThat(checkRenge(rset1, "24.3465566", "124.1519297"), is(true)); + assertThat(DbTest.checkRenge(rset1, "24.3465566", "124.1519297"), is(true)); } else { fail(); @@ -170,7 +169,7 @@ try (ResultSet rset1 = ps1.executeQuery()) { if (rset1.next()) { assertThat(rset1.getInt("score"), is(50)); - assertThat(checkRenge(rset1, "35.4371428029181", "139.403185626731"), is(true)); + assertThat(DbTest.checkRenge(rset1, "35.4371428029181", "139.403185626731"), is(true)); } else { fail(); @@ -183,7 +182,7 @@ try (ResultSet rset1 = ps1.executeQuery()) { if (rset1.next()) { assertThat(rset1.getInt("score"), is(50)); - assertThat(checkRenge(rset1, "35.5688084", "139.7300300"), is(true)); + assertThat(DbTest.checkRenge(rset1, "35.5688084", "139.7300300"), is(true)); } else { fail(); @@ -196,7 +195,7 @@ try (ResultSet rset1 = ps1.executeQuery()) { if (rset1.next()) { assertThat(rset1.getInt("score"), is(50)); - assertThat(checkRenge(rset1, "35.4080670", "139.4014703"), is(true)); + assertThat(DbTest.checkRenge(rset1, "35.4080670", "139.4014703"), is(true)); assertThat(rset1.getBoolean("removed"), is(true)); } else { @@ -210,42 +209,33 @@ try (ResultSet rset1 = ps1.executeQuery()) { if (rset1.next()) { assertThat(rset1.getInt("score"), is(50)); - assertThat(checkRenge(rset1, "35.4305614", "139.3662339"), is(true)); + assertThat(DbTest.checkRenge(rset1, "35.4305614", "139.3662339"), is(true)); } else { fail(); } } + + // 35.5955359, 139.5096330 + // node: "removed:amenity=fuel" (5338111023) https://www.openstreetmap.org/node/5338111023 + // ノード: removed (5338111023) 場所: 35.4305614, 139.3662339 + ps1 = hsqldb.prepareStatement("SELECT * FROM " + tableName); + try (ResultSet rset1 = ps1.executeQuery()) { + while (rset1.next()) { + if (DbTest.checkRenge(rset1, "35.5955359", "139.5096330", 0.001D)) { + String gmlid = rset1.getString("gmlid"); + String idref = rset1.getString("idref"); + boolean rmd = rset1.getBoolean("removed"); + System.out.println(); + } + } + } } catch (Exception e) { fail(e.toString()); } } - 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; - } - public void test02_main() throws Exception { Connection hsqldb = null; try { diff --git a/test/osm/jp/coverage/fuel/DbFuelTest.java b/test/osm/jp/coverage/fuel/DbFuelTest.java index 5bf31a9..13cde83 100644 --- a/test/osm/jp/coverage/fuel/DbFuelTest.java +++ b/test/osm/jp/coverage/fuel/DbFuelTest.java @@ -1,6 +1,8 @@ package osm.jp.coverage.fuel; import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; import jp.co.areaweb.tools.database.DatabaseTool; import static org.hamcrest.CoreMatchers.is; import org.junit.After; @@ -187,6 +189,21 @@ int cnt = DbTest.getRecordCount(hsqldb, tableName, "REMOVED=TRUE"); System.out.println("'FUEL REMOVED=TRUE' table count = " + cnt); assertThat(cnt > 10, is(true)); + + // 35.5955359, 139.5096330 + // node: "removed:amenity=fuel" (5338111023) https://www.openstreetmap.org/node/5338111023 + // ノード: removed (5338111023) 場所: 35.4305614, 139.3662339 + PreparedStatement ps1 = hsqldb.prepareStatement("SELECT * FROM " + tableName); + try (ResultSet rset1 = ps1.executeQuery()) { + while (rset1.next()) { + if (DbTest.checkRenge(rset1, "35.5955359", "139.5096330", 0.001D)) { + String gmlid = rset1.getString("gmlid"); + String idref = rset1.getString("idref"); + boolean rmd = rset1.getBoolean("removed"); + System.out.println(); + } + } + } } catch (Exception e) { fail(e.toString());