From 09bf761e6d7b67a29b3e78136b21a7adf571cdea Mon Sep 17 00:00:00 2001 From: clydedacruz Date: Mon, 12 Mar 2018 15:03:24 +0530 Subject: [PATCH 1/3] added working test case for parseNodes --- decode_data.go | 2 -- decode_test.go | 28 ++++++++++++++++++++-------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/decode_data.go b/decode_data.go index 08b25aa..c2ed0f0 100644 --- a/decode_data.go +++ b/decode_data.go @@ -62,8 +62,6 @@ func (dec *dataDecoder) parseNodes(pb *OSMPBF.PrimitiveBlock, nodes []*OSMPBF.No info := extractInfo(st, node.GetInfo(), dateGranularity) dec.q = append(dec.q, &Node{id, latitude, longitude, tags, info}) - - panic("Please test this first") } } diff --git a/decode_test.go b/decode_test.go index 1fe005d..c407e3d 100644 --- a/decode_test.go +++ b/decode_test.go @@ -19,6 +19,11 @@ const ( // Stored at https://gist.github.com/AlekSi/d4369aa13cf1fc5ddfac3e91b67b2f7b London = "greater-london-140324.osm.pbf" LondonURL = "https://gist.githubusercontent.com/AlekSi/d4369aa13cf1fc5ddfac3e91b67b2f7b/raw/f87959d6c9466547d9759971e071a15049b67ae2/greater-london-140324.osm.pbf" + + // Same file as above, but without 'DenseNodes'. This has been generated using the below command (using osmium-tool http://osmcode.org/osmium-tool/) + // "osmium cat -o greater-london-140324-nondense.osm.pbf greater-london-140324.osm.pbf -f osm.pbf,pbf_dense_nodes=false" + LondonNonDense = "greater-london-140324-nondense.osm.pbf" + LondonNonDenseURL = "https://gist.githubusercontent.com/clydedacruz/6263693f4facc28c84e768e708a489ff/raw/0f2ecad796a0234678c8fa6a0cc8fae376ead646/greater-london-140324-nondense.osm.pbf" ) func parseTime(s string) time.Time { @@ -141,8 +146,8 @@ func init() { } } -func downloadTestOSMFile(t *testing.T) { - _, err := os.Stat(London) +func downloadTestOSMFile(fileName string, downloadURL string, t *testing.T) { + _, err := os.Stat(fileName) if err == nil { return } @@ -150,7 +155,7 @@ func downloadTestOSMFile(t *testing.T) { t.Fatal(err) } - resp, err := http.Get(LondonURL) + resp, err := http.Get(downloadURL) if err != nil { t.Fatal(err) } @@ -160,7 +165,7 @@ func downloadTestOSMFile(t *testing.T) { t.Fatalf("expected 200, got %d", resp.StatusCode) } - out, err := os.Create(London) + out, err := os.Create(fileName) if err != nil { t.Fatal(err) } @@ -199,10 +204,10 @@ func checkHeader(a *Header) bool { return true } -func TestDecode(t *testing.T) { - downloadTestOSMFile(t) +func decodePBF(PBFfileName string, fileDownloadURL string, t *testing.T) { + downloadTestOSMFile(PBFfileName, fileDownloadURL, t) - f, err := os.Open(London) + f, err := os.Open(PBFfileName) if err != nil { t.Fatal(err) } @@ -288,8 +293,15 @@ func TestDecode(t *testing.T) { } } +func TestDecodePBFWithDenseNodes(t *testing.T) { + decodePBF(London, LondonURL, t) +} + +func TestDecodePBFWithNodes(t *testing.T) { + decodePBF(LondonNonDense, LondonNonDenseURL, t) +} func TestDecodeConcurrent(t *testing.T) { - downloadTestOSMFile(t) + downloadTestOSMFile(London, LondonURL, t) f, err := os.Open(London) if err != nil { From 9cda7d99ef740cca4b8eabb9459b8e314dd16e03 Mon Sep 17 00:00:00 2001 From: clydedacruz Date: Mon, 12 Mar 2018 21:25:53 +0530 Subject: [PATCH 2/3] updated the gist link in test file --- decode_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/decode_test.go b/decode_test.go index c407e3d..36a84c4 100644 --- a/decode_test.go +++ b/decode_test.go @@ -23,7 +23,7 @@ const ( // Same file as above, but without 'DenseNodes'. This has been generated using the below command (using osmium-tool http://osmcode.org/osmium-tool/) // "osmium cat -o greater-london-140324-nondense.osm.pbf greater-london-140324.osm.pbf -f osm.pbf,pbf_dense_nodes=false" LondonNonDense = "greater-london-140324-nondense.osm.pbf" - LondonNonDenseURL = "https://gist.githubusercontent.com/clydedacruz/6263693f4facc28c84e768e708a489ff/raw/0f2ecad796a0234678c8fa6a0cc8fae376ead646/greater-london-140324-nondense.osm.pbf" + LondonNonDenseURL = "https://gist.githubusercontent.com/AlekSi/d4369aa13cf1fc5ddfac3e91b67b2f7b/raw/8604f36a7357adfbd6b5292c2ea4972d9d0bfd3d/greater-london-140324-nondense.osm.pbf" ) func parseTime(s string) time.Time { From d03e78ce9e69f8d9f489238c229f46ce2df0662d Mon Sep 17 00:00:00 2001 From: Alexey Palazhchenko Date: Sun, 25 Mar 2018 12:41:51 +0300 Subject: [PATCH 3/3] Minor refactoring. --- decode_test.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/decode_test.go b/decode_test.go index 36a84c4..7105827 100644 --- a/decode_test.go +++ b/decode_test.go @@ -15,15 +15,16 @@ import ( ) const ( + // Test files are stored at https://gist.github.com/AlekSi/d4369aa13cf1fc5ddfac3e91b67b2f7b + // 8604f36a7357adfbd6b5292c2ea4972d9d0bfd3d is the latest commit. + GistURL = "https://gist.githubusercontent.com/AlekSi/d4369aa13cf1fc5ddfac3e91b67b2f7b/raw/8604f36a7357adfbd6b5292c2ea4972d9d0bfd3d/" + // Originally downloaded from http://download.geofabrik.de/europe/great-britain/england/greater-london.html - // Stored at https://gist.github.com/AlekSi/d4369aa13cf1fc5ddfac3e91b67b2f7b - London = "greater-london-140324.osm.pbf" - LondonURL = "https://gist.githubusercontent.com/AlekSi/d4369aa13cf1fc5ddfac3e91b67b2f7b/raw/f87959d6c9466547d9759971e071a15049b67ae2/greater-london-140324.osm.pbf" + London = "greater-london-140324.osm.pbf" // Same file as above, but without 'DenseNodes'. This has been generated using the below command (using osmium-tool http://osmcode.org/osmium-tool/) // "osmium cat -o greater-london-140324-nondense.osm.pbf greater-london-140324.osm.pbf -f osm.pbf,pbf_dense_nodes=false" - LondonNonDense = "greater-london-140324-nondense.osm.pbf" - LondonNonDenseURL = "https://gist.githubusercontent.com/AlekSi/d4369aa13cf1fc5ddfac3e91b67b2f7b/raw/8604f36a7357adfbd6b5292c2ea4972d9d0bfd3d/greater-london-140324-nondense.osm.pbf" + LondonNonDense = "greater-london-140324-nondense.osm.pbf" ) func parseTime(s string) time.Time { @@ -146,7 +147,7 @@ func init() { } } -func downloadTestOSMFile(fileName string, downloadURL string, t *testing.T) { +func downloadTestOSMFile(fileName string, t *testing.T) { _, err := os.Stat(fileName) if err == nil { return @@ -155,7 +156,7 @@ func downloadTestOSMFile(fileName string, downloadURL string, t *testing.T) { t.Fatal(err) } - resp, err := http.Get(downloadURL) + resp, err := http.Get(GistURL + fileName) if err != nil { t.Fatal(err) } @@ -204,8 +205,8 @@ func checkHeader(a *Header) bool { return true } -func decodePBF(PBFfileName string, fileDownloadURL string, t *testing.T) { - downloadTestOSMFile(PBFfileName, fileDownloadURL, t) +func decodePBF(PBFfileName string, t *testing.T) { + downloadTestOSMFile(PBFfileName, t) f, err := os.Open(PBFfileName) if err != nil { @@ -294,14 +295,15 @@ func decodePBF(PBFfileName string, fileDownloadURL string, t *testing.T) { } func TestDecodePBFWithDenseNodes(t *testing.T) { - decodePBF(London, LondonURL, t) + decodePBF(London, t) } func TestDecodePBFWithNodes(t *testing.T) { - decodePBF(LondonNonDense, LondonNonDenseURL, t) + decodePBF(LondonNonDense, t) } + func TestDecodeConcurrent(t *testing.T) { - downloadTestOSMFile(London, LondonURL, t) + downloadTestOSMFile(London, t) f, err := os.Open(London) if err != nil {