From 44f007f558ee8178c4109ae0bbe47908bc9151f0 Mon Sep 17 00:00:00 2001 From: Rafa de la Torre Date: Tue, 3 Nov 2015 18:41:17 +0100 Subject: [PATCH] Add tests for postalcodes (by iriberri) --- .../expected/cdb_geocoder_postalcode_test.out | 97 ++++++++++++++++++- .../sql/cdb_geocoder_postalcode_test.sql | 55 ++++++++++- 2 files changed, 150 insertions(+), 2 deletions(-) diff --git a/geocoder/extension/expected/cdb_geocoder_postalcode_test.out b/geocoder/extension/expected/cdb_geocoder_postalcode_test.out index 4c317ad..83256e6 100644 --- a/geocoder/extension/expected/cdb_geocoder_postalcode_test.out +++ b/geocoder/extension/expected/cdb_geocoder_postalcode_test.out @@ -1 +1,96 @@ --- PENDING +SELECT (geocode_postalcode_polygons(Array['03204'], Array['Spain'])).*; + q | c | geom | success +-------+-------+------+--------- + 03204 | Spain | | f +(1 row) + +SELECT (geocode_postalcode_polygons(Array['03204'], 'ESP')).*; + q | geom | success +-------+------+--------- + 03204 | | f +(1 row) + +SELECT (geocode_postalcode_polygons(Array['03204'])).*; + q | geom | success +-------+------+--------- + 03204 | | f +(1 row) + +SELECT (geocode_postalcode_points(Array['03204'], 'Spain')).*; + q | geom | success +-------+------+--------- + 03204 | | f +(1 row) + +SELECT (geocode_postalcode_points('{03204}', 'Spain')).*; + q | geom | success +-------+------+--------- + 03204 | | f +(1 row) + +SELECT (geocode_postalcode_points(Array['03204'])).*; + q | geom | success +-------+------+--------- + 03204 | | f +(1 row) + +SELECT (geocode_postalcode_points(Array['03204'], Array['Spain'])).*; + q | c | iso3 | geom | success +-------+-------+------+------+--------- + 03204 | Spain | | | f +(1 row) + +SELECT geocode_greatbritain_outward('YO1 721'); + geocode_greatbritain_outward +------------------------------ + +(1 row) + +SELECT (admin0_available_services(Array['Spain'])).*; + q | adm0_a3 | postal_code_points | postal_code_polygons +-------+---------+--------------------+---------------------- + Spain | | | +(1 row) + +-- Insert mock source data +INSERT INTO global_postal_code_points (the_geom, iso3, postal_code, postal_code_num) VALUES ( + '0101000020E61000000000000000E040408036B47414764840', + 'ESP', + '03204', + 3204 +); +INSERT INTO global_postal_code_polygons (the_geom, iso3, postal_code, postal_code_num) VALUES ( + '0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040', + 'ESP', + '03204', + 3204 +); +INSERT INTO country_decoder (iso3, synonyms) VALUES ( + 'ESP', + Array['spain', 'Spain', 'ESP'] +); +INSERT INTO available_services (adm0_a3, admin0, postal_code_points, postal_code_polygons) VALUES ( + 'ESP', + 't', + 't', + 't' +); +INSERT INTO admin0_synonyms (adm0_a3, name, name_, rank) VALUES ( + 'ESP', + 'Spain', + 'spain', + 3 +); +INSERT INTO admin0_synonyms (adm0_a3, name, name_, rank) VALUES ( + 'ESP', + 'ESP', + 'esp', + 4 +); +-- Check that the geocoding function is callable, should return success = true +SELECT (geocode_postalcode_polygons(Array['03204'], Array['Spain'])).geom; + geom +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + 0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040 +(1 row) + diff --git a/geocoder/extension/sql/cdb_geocoder_postalcode_test.sql b/geocoder/extension/sql/cdb_geocoder_postalcode_test.sql index 4c317ad..6a332c0 100644 --- a/geocoder/extension/sql/cdb_geocoder_postalcode_test.sql +++ b/geocoder/extension/sql/cdb_geocoder_postalcode_test.sql @@ -1 +1,54 @@ --- PENDING +SELECT (geocode_postalcode_polygons(Array['03204'], Array['Spain'])).*; +SELECT (geocode_postalcode_polygons(Array['03204'], 'ESP')).*; +SELECT (geocode_postalcode_polygons(Array['03204'])).*; +SELECT (geocode_postalcode_points(Array['03204'], 'Spain')).*; +SELECT (geocode_postalcode_points('{03204}', 'Spain')).*; +SELECT (geocode_postalcode_points(Array['03204'])).*; +SELECT (geocode_postalcode_points(Array['03204'], Array['Spain'])).*; +SELECT geocode_greatbritain_outward('YO1 721'); +SELECT (admin0_available_services(Array['Spain'])).*; + +-- Insert mock source data +INSERT INTO global_postal_code_points (the_geom, iso3, postal_code, postal_code_num) VALUES ( + '0101000020E61000000000000000E040408036B47414764840', + 'ESP', + '03204', + 3204 +); + +INSERT INTO global_postal_code_polygons (the_geom, iso3, postal_code, postal_code_num) VALUES ( + '0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040', + 'ESP', + '03204', + 3204 +); + +INSERT INTO country_decoder (iso3, synonyms) VALUES ( + 'ESP', + Array['spain', 'Spain', 'ESP'] +); + +INSERT INTO available_services (adm0_a3, admin0, postal_code_points, postal_code_polygons) VALUES ( + 'ESP', + 't', + 't', + 't' +); + +INSERT INTO admin0_synonyms (adm0_a3, name, name_, rank) VALUES ( + 'ESP', + 'Spain', + 'spain', + 3 +); + +INSERT INTO admin0_synonyms (adm0_a3, name, name_, rank) VALUES ( + 'ESP', + 'ESP', + 'esp', + 4 +); + +-- Check that the geocoding function is callable, should return success = true +SELECT (geocode_postalcode_polygons(Array['03204'], Array['Spain'])).geom; +