polserver/pol-core/pol/testing/testskill.cpp
turleypol 43b776b94d
New format lib version (#592)
* renamed include guard to be able to use both format lib versions in
parallel

* build Fmt lib and link it into clib

* use std::string instead of format Writer for logging
added variant "2" for logging with new fmt lib

* use new logging variant for two logs

* always add \n to flush log, lets see if the assumption holds

* use new lib for tostring

* replaced all INFO_PRINTS in clib

* formatter for Token, BObject and BObjectImp

* started with bsccript

* use function instead of actual object for logging

* remaining bscript, started plib

* logvariant without newline added, more template magic

* format support for base types, added test for format padding
new version for fdump

* chanhed ecompile/runecl fixed compilation with ESCRIPT_PROFILE

* rewrite INFO_PRINT in plib,poltool/uoconvert/uotool

* replaced remaining INFO_PRINTS, renamed macros INFO_PRINT for logging
without newline, INFO_PRINTLN for newline addition.
Replaced also INFO_PRINT_TRACE and renamed it to INFO_PRINTLN_TRACE

* gitignore for fmt lib

* cleanup vim leftovers
2024-01-10 18:29:10 +01:00

106 lines
2.4 KiB
C++

/** @file
*
* I doubt the usefullness..
* raw_to_base looses information
* @par History
*/
#include "testenv.h"
#include "../../clib/logfacility.h"
#include "../skilladv.h"
namespace Pol
{
namespace Testing
{
namespace
{
void test_skilladv( unsigned int raw, unsigned short base )
{
INFO_PRINT("Raw {}, base {}: ",raw,base);
if ( Core::raw_to_base( raw ) != base )
{
INFO_PRINTLN("raw_to_base failed!");
UnitTest::inc_failures();
}
if ( Core::base_to_raw( base ) != raw )
{
INFO_PRINTLN("base_to_raw failed!");
UnitTest::inc_failures();
}
INFO_PRINTLN("Passed");
UnitTest::inc_successes();
}
} // namespace
void skilladv_test()
{
INFO_PRINTLN("Skill advancement tests:");
test_skilladv( 20, 1 );
test_skilladv( 512, 25 );
test_skilladv( 1024, 50 );
test_skilladv( 2048, 100 );
test_skilladv( 3072, 150 );
test_skilladv( 4096, 200 );
test_skilladv( 5120, 225 );
test_skilladv( 6144, 250 );
test_skilladv( 7168, 275 );
test_skilladv( 8192, 300 );
test_skilladv( 16384, 400 );
test_skilladv( 32768, 500 );
test_skilladv( 65536, 600 );
test_skilladv( 131072, 700 );
test_skilladv( 262144, 800 );
test_skilladv( 524288, 900 );
test_skilladv( 1048576, 1000 );
test_skilladv( 2097152, 1100 );
test_skilladv( 4194304, 1200 );
test_skilladv( 8388608, 1300 );
test_skilladv( 16777216, 1400 );
test_skilladv( 33554432, 1500 );
test_skilladv( 67108864, 1600 );
test_skilladv( 134217728, 1700 );
test_skilladv( 268435456, 1800 );
test_skilladv( 536870912, 1900 );
for ( unsigned short base = 0; base < 2000; ++base )
{
INFO_PRINT("Base {}: Raw=",base);
unsigned int raw = Core::base_to_raw( base );
INFO_PRINT("{}: ",raw);
unsigned short calcbase = Core::raw_to_base( raw );
if ( calcbase != base )
{
INFO_PRINTLN("Failed ({})",calcbase);
UnitTest::inc_failures();
}
else
{
INFO_PRINTLN("Passed");
UnitTest::inc_successes();
}
}
for ( unsigned int raw = 0; raw < 2500; ++raw )
{
INFO_PRINT("Raw {}: Base=",raw);
unsigned short base = Core::raw_to_base( raw );
INFO_PRINT("{}: ",base);
unsigned int calcraw = Core::base_to_raw( base );
if ( calcraw != raw )
{
INFO_PRINTLN("Failed ({})",calcraw);
UnitTest::inc_failures();
}
else
{
INFO_PRINTLN("Passed");
UnitTest::inc_successes();
}
}
}
} // namespace Testing
} // namespace Pol