Emmanuel BENOîT
b054a379a9
* The universe generator has been modified to generate resource providers. The code attempts to keep the universe balanced according to the natural resources definitions.
72 lines
No EOL
2.2 KiB
PL/PgSQL
72 lines
No EOL
2.2 KiB
PL/PgSQL
/*
|
|
* 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; |