Merge remote-tracking branch 'origin/QLIK' into qlik-alfa-plproxy

Conflicts:
	src/pg/test/expected/40_observatory_utility_test.out
	src/pg/test/sql/40_observatory_utility_test.sql
This commit is contained in:
Rafa de la Torre
2016-04-19 14:26:41 +02:00
14 changed files with 682 additions and 39 deletions

View File

@@ -5,7 +5,7 @@
-- OBS_GeomTable
-- get table with known geometry_id
-- should give back a table like obs_{hex hash}
SELECT
SELECT
cdb_observatory.OBS_GeomTable(
CDB_LatLng(40.7128,-74.0059),
'"us.census.tiger".census_tract'
@@ -13,19 +13,26 @@ SELECT
-- get null for unknown geometry_id
-- should give back null
SELECT
SELECT
cdb_observatory.OBS_GeomTable(
CDB_LatLng(40.7128,-74.0059),
'"us.census.tiger".nonexistant_id'
'"us.census.tiger".nonexistant_id' -- not in catalog
);
-- future test: give back nulls when geometry doesn't intersect
-- SELECT
-- cdb_observatory.OBS_GeomTable(
-- CDB_LatLng(0,0), -- should give back null since it's in the ocean?
-- '"us.census.tiger".census_tract'
-- );
-- OBS_GetColumnData
-- should give back:
-- colname | tablename | aggregate
-- -----------|-----------------|-----------
-- geoid | obs_{hex table} | null
-- total_pop | obs_{hex table} | sum
SELECT
SELECT
(unnest(cdb_observatory.OBS_GetColumnData(
'"us.census.tiger".census_tract',
Array['"us.census.tiger".census_tract_geoid', '"us.census.acs".B01001001'],
@@ -33,18 +40,39 @@ SELECT
))).*
ORDER BY colname, tablename ASC;
-- should be null-valued
SELECT
(unnest(cdb_observatory.OBS_GetColumnData(
'"us.census.tiger".census_tract',
Array['"us.census.tiger".baloney'], -- entry not in catalog
'2009 - 2013'
))).*
ORDER BY 1 ASC;
-- OBS_LookupCensusHuman
-- should give back: {"\"us.census.acs\".B19083001"}
SELECT
SELECT
cdb_observatory.OBS_LookupCensusHuman(
Array['gini_index']
);
-- should be empty array
SELECT
cdb_observatory.OBS_LookupCensusHuman(
Array['cookies']
);
-- OBS_BuildSnapshotQuery
-- Should give back: SELECT vals[1] As total_pop, vals[2] As male_pop, vals[3] As female_pop, vals[4] As median_age
SELECT
SELECT
cdb_observatory.OBS_BuildSnapshotQuery(
Array['total_pop','male_pop','female_pop','median_age']
);
-- should give back: SELECT vals[1] As mandarin_orange
SELECT
cdb_observatory.OBS_BuildSnapshotQuery(
Array['mandarin_orange']
);
\i test/sql/drop_fixtures.sql

View File

@@ -0,0 +1,135 @@
SELECT set_config(
'search_path',
current_setting('search_path') || ',cdb_observatory,observatory',
false
) WHERE current_setting('search_path') !~ '(^|,)(cdb_observatory|observatory)(,|$)';
\i test/sql/load_fixtures.sql
--
SELECT * FROM
cdb_observatory.OBS_GetDemographicSnapshot(
cdb_observatory._TestPoint(),
'2009 - 2013',
'"us.census.tiger".block_group'
) As snapshot;
--
-- dimension | dimension_value
-- ----------|----------------
-- total_pop | 9516.27915900609
-- male_pop | 6152.51885204623
SELECT *
FROM
cdb_observatory.OBS_GetCensus(
cdb_observatory._TestPoint(),
Array['total_pop','male_pop']::text[]
);
-- what happens on null island?
-- expect nulls back: {female_pop, male_pop} | {NULL, NULL}
SELECT *
FROM
cdb_observatory.OBS_GetCensus(
ST_Buffer(CDB_LatLng(0, 0)::geography, 5000)::geometry,
Array['female_pop','male_pop']::text[]
);
-- expect nulls back {female_pop, male_pop} | {NULL, NULL}
SELECT *
FROM
cdb_observatory.OBS_GetCensus(
CDB_LatLng(0, 0),
Array['female_pop', 'male_pop']::text[]
);
--
-- names | vals
-- -----------|-------
-- gini_index | 0.3494
SELECT * FROM
cdb_observatory.OBS_Get(
cdb_observatory._TestPoint(),
Array['"us.census.acs".B19083001']::text[],
'2009 - 2013',
'"us.census.tiger".block_group'
);
-- gini index at null island
SELECT * FROM
cdb_observatory.OBS_Get(
CDB_LatLng(0, 0),
Array['"us.census.acs".B19083001']::text[],
'2009 - 2013',
'"us.census.tiger".block_group'
);
-- OBS_GetPoints
-- obs_getpoints
-- --------------------
-- {4809.33511352425}
SELECT
cdb_observatory.OBS_GetPoints(
cdb_observatory._TestPoint(),
'obs_a92e1111ad3177676471d66bb8036e6d057f271b'::text, -- see example in obs_geomtable
Array[('total_pop','obs_ab038198aaab3f3cb055758638ee4de28ad70146','sum')::cdb_observatory.OBS_ColumnData]
);
-- what happens at null island
SELECT
cdb_observatory.OBS_GetPoints(
CDB_LatLng(0, 0),
'obs_a92e1111ad3177676471d66bb8036e6d057f271b'::text, -- see example in obs_geomtable
Array[('total_pop','obs_ab038198aaab3f3cb055758638ee4de28ad70146','sum')::cdb_observatory.OBS_ColumnData]
);
-- OBS_GetPolygons
-- obs_getpolygons
-- --------------------
-- {12996.8172420752}
SELECT
OBS_GetPolygons(
_TestArea(),
'obs_a92e1111ad3177676471d66bb8036e6d057f271b'::text, -- see example in obs_geomtable
Array[('total_pop','obs_ab038198aaab3f3cb055758638ee4de28ad70146','sum')::OBS_ColumnData]
);
-- see what happens around null island
SELECT
OBS_GetPolygons(
ST_Buffer(CDB_LatLng(0, 0)::geography, 500)::geometry,
'obs_a92e1111ad3177676471d66bb8036e6d057f271b'::text, -- see example in obs_geomtable
Array[('total_pop','obs_ab038198aaab3f3cb055758638ee4de28ad70146','sum')::OBS_ColumnData]
);
SELECT * FROM
cdb_observatory.OBS_GetSegmentSnapshot(
_TestPoint(),
'"us.census.tiger".census_tract'
);
-- segmentation around null island
SELECT * FROM
cdb_observatory.OBS_GetSegmentSnapshot(
CDB_LatLng(0, 0),
'"us.census.tiger".census_tract'
);
SELECT * FROM
cdb_observatory.OBS_GetCategories(
_TestPoint(),
Array['"us.census.spielman_singleton_segments".X10'],
'"us.census.tiger".census_tract'
);
SELECT * FROM
cdb_observatory.OBS_GetCategories(
CDB_LatLng(0, 0),
Array['"us.census.spielman_singleton_segments".X10'],
'"us.census.tiger".census_tract'
);
\i test/sql/drop_fixtures.sql

View File

@@ -27,4 +27,20 @@ DROP TABLE observatory.obs_85328201013baa14e8e8a4a57a01e6f6fbc5f9b1;
DROP TABLE observatory.obs_3e7cc9cfd403b912c57b42d5f9195af9ce2f3cdb;
\echo Done.
\echo Dropping obs_ab038198aaab3f3cb055758638ee4de28ad70146 fixture table...
DROP TABLE observatory.obs_ab038198aaab3f3cb055758638ee4de28ad70146;
\echo Done.
\echo Dropping obs_a92e1111ad3177676471d66bb8036e6d057f271b fixture table...
DROP TABLE observatory.obs_a92e1111ad3177676471d66bb8036e6d057f271b;
\echo Done.
\echo Dropping obs_11ee8b82c877c073438bc935a91d3dfccef875d1 fixture table...
DROP TABLE observatory.obs_11ee8b82c877c073438bc935a91d3dfccef875d1;
\echo Done.
\echo Dropping obs_d34555209878e8c4b37cf0b2b3d072ff129ec470 fixture table...
DROP TABLE observatory.obs_d34555209878e8c4b37cf0b2b3d072ff129ec470;
\echo Done.
\unset ECHO

View File

@@ -27,4 +27,20 @@ SET client_min_messages TO WARNING;
\i test/fixtures/obs_3e7cc9cfd403b912c57b42d5f9195af9ce2f3cdb.sql
\echo Done.
\echo Loading obs_ab038198aaab3f3cb055758638ee4de28ad70146.sql fixture file...
\i test/fixtures/obs_ab038198aaab3f3cb055758638ee4de28ad70146.sql
\echo Done.
\echo Loading obs_a92e1111ad3177676471d66bb8036e6d057f271b.sql fixture file...
\i test/fixtures/obs_a92e1111ad3177676471d66bb8036e6d057f271b.sql
\echo Done.
\echo Loading obs_11ee8b82c877c073438bc935a91d3dfccef875d1.sql fixture file...
\i test/fixtures/obs_11ee8b82c877c073438bc935a91d3dfccef875d1.sql
\echo Done.
\echo Loading obs_d34555209878e8c4b37cf0b2b3d072ff129ec470.sql fixture file...
\i test/fixtures/obs_d34555209878e8c4b37cf0b2b3d072ff129ec470.sql
\echo Done.
\unset ECHO