72 lines
2.2 KiB
MySQL
72 lines
2.2 KiB
MySQL
|
/*
|
||
|
* Test the verse.collect_resprov_statistics( ) function
|
||
|
*/
|
||
|
BEGIN;
|
||
|
\i utils/strings.sql
|
||
|
\i utils/resources.sql
|
||
|
\i utils/accounts.sql
|
||
|
\i utils/naming.sql
|
||
|
\i utils/universe.sql
|
||
|
SELECT _create_natural_resources( 2 , 'testResource' );
|
||
|
SELECT _create_raw_planets( 5 , 'testPlanet' );
|
||
|
|
||
|
/****** TESTS BEGIN HERE ******/
|
||
|
SELECT plan( 6 );
|
||
|
|
||
|
SELECT verse.collect_resprov_statistics( );
|
||
|
|
||
|
SELECT diag_test_name( 'verse.collect_resprov_statistics( ) - Temporary table creation' );
|
||
|
SELECT has_table( 'rp_stats' );
|
||
|
|
||
|
SELECT diag_test_name( 'verse.collect_resprov_statistics( ) - Temporary table rows' );
|
||
|
SELECT is( COUNT(*)::INT , 2 ) FROM rp_stats;
|
||
|
|
||
|
SELECT diag_test_name( 'verse.collect_resprov_statistics( ) - rp_stats contains definition data' );
|
||
|
SELECT is( COUNT(*)::INT , 2 )
|
||
|
FROM (
|
||
|
SELECT ( d.natres_quantity_avg = s.quantity_avg
|
||
|
AND d.natres_quantity_dev = s.quantity_dev
|
||
|
AND d.natres_difficulty_avg = s.difficulty_avg
|
||
|
AND d.natres_difficulty_dev = s.difficulty_dev
|
||
|
AND d.natres_recovery_avg = s.recovery_avg
|
||
|
AND d.natres_recovery_dev = s.recovery_dev
|
||
|
AND d.natres_p_presence = s.presence ) AS ok
|
||
|
FROM rp_stats s
|
||
|
INNER JOIN defs.natural_resources d
|
||
|
USING ( resource_name_id )
|
||
|
) sq
|
||
|
WHERE sq.ok;
|
||
|
|
||
|
SELECT diag_test_name( 'verse.collect_resprov_statistics( ) - rp_stats contains planet counts' );
|
||
|
SELECT is( COUNT(*)::INT , 2 )
|
||
|
FROM (
|
||
|
SELECT planets = 5 AS ok
|
||
|
FROM rp_stats
|
||
|
) sq
|
||
|
WHERE sq.ok;
|
||
|
|
||
|
SELECT diag_test_name( 'verse.collect_resprov_statistics( ) - rp_stats sums at 0 with no providers' );
|
||
|
SELECT is( COUNT(*)::INT , 2 )
|
||
|
FROM (
|
||
|
SELECT ( providers = 0 AND quantity = 0
|
||
|
AND difficulty = 0 AND recovery = 0 ) AS ok
|
||
|
FROM rp_stats
|
||
|
) sq
|
||
|
WHERE sq.ok;
|
||
|
|
||
|
DROP TABLE rp_stats;
|
||
|
SELECT _create_resource_provider( 'testPlanet1' , 'testResource1' );
|
||
|
SELECT verse.collect_resprov_statistics( );
|
||
|
|
||
|
SELECT diag_test_name( 'verse.collect_resprov_statistics( ) - rp_stats sums' );
|
||
|
SELECT is( COUNT(*)::INT , 1 )
|
||
|
FROM (
|
||
|
SELECT ( resource_name_id = _get_string( 'testResource1' )
|
||
|
AND providers = 1 AND quantity = 100
|
||
|
AND difficulty = 0.5 AND recovery = 0.5 ) AS ok
|
||
|
FROM rp_stats
|
||
|
) sq
|
||
|
WHERE sq.ok;
|
||
|
|
||
|
SELECT * FROM finish( );
|
||
|
ROLLBACK;
|