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.
62 lines
No EOL
2.7 KiB
PL/PgSQL
62 lines
No EOL
2.7 KiB
PL/PgSQL
/*
|
|
* Test the verse.create_resource_provider( ) function
|
|
*/
|
|
BEGIN;
|
|
|
|
/* Before any actual testing, we need to drop FK constraints on the RP
|
|
* table and create a table which will contain the results of the
|
|
* function.
|
|
*/
|
|
|
|
ALTER TABLE verse.resource_providers
|
|
DROP CONSTRAINT fk_resprov_planet ,
|
|
DROP CONSTRAINT fk_resprov_resource;
|
|
|
|
CREATE TEMPORARY TABLE test_result(
|
|
_providers_left INT ,
|
|
_tot_quantity DOUBLE PRECISION ,
|
|
_tot_difficulty DOUBLE PRECISION ,
|
|
_tot_recovery DOUBLE PRECISION
|
|
) ON COMMIT DROP;
|
|
|
|
/* Now we call the function using a crafted resource statistics row which
|
|
* will make it easy to check the results.
|
|
*/
|
|
INSERT INTO test_result
|
|
SELECT * FROM verse.create_resource_provider( 12 ,
|
|
ROW( 34 , 0.0 , 0.0 , 0.0 , 0.0 , 5.0 , 0.0 , 0.0 , 0.75 , 0.0 , 0.0 , 0.5 , 0 ) ,
|
|
2 , 10 , 1.5 , 1 );
|
|
|
|
|
|
/***** TESTS BEGIN HERE *****/
|
|
SELECT plan( 11 );
|
|
|
|
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Output exists' );
|
|
SELECT is( COUNT(*)::INT , 1 ) FROM test_result;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - _providers_left updated' );
|
|
SELECT is( _providers_left , 1 ) FROM test_result;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - _tot_quantity updated' );
|
|
SELECT is( _tot_quantity::NUMERIC , 5.0 ) FROM test_result;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - _tot_difficulty updated' );
|
|
SELECT is( _tot_difficulty::NUMERIC , 0.75 ) FROM test_result;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - _tot_recovery updated' );
|
|
SELECT is( _tot_recovery::NUMERIC , 0.5 ) FROM test_result;
|
|
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Resource provider exists' );
|
|
SELECT is( COUNT(*)::INT , 1 ) FROM verse.resource_providers;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Resource provider primary key' );
|
|
SELECT is( COUNT(*)::INT , 1 ) FROM verse.resource_providers
|
|
WHERE planet_id = 12 AND resource_name_id = 34;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Resource provider is full' );
|
|
SELECT is( COUNT(*)::INT , 1 ) FROM verse.resource_providers
|
|
WHERE resprov_quantity = resprov_quantity_max;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Resource provider maximal quantity' );
|
|
SELECT is( resprov_quantity_max::NUMERIC , 5.0 ) FROM verse.resource_providers;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Resource provider extraction difficulty' );
|
|
SELECT is( resprov_difficulty::NUMERIC , 0.75 ) FROM verse.resource_providers;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Resource provider recovery rate' );
|
|
SELECT is( resprov_recovery::NUMERIC , 0.5 ) FROM verse.resource_providers;
|
|
|
|
SELECT * FROM finish( );
|
|
ROLLBACK; |