void test_a_i64_z_extF80( void trueFunction( int64_t, extFloat80_t * ), void subjFunction( int64_t, extFloat80_t * ) ) { int count; extFloat80_t trueZ; uint_fast8_t trueFlags; extFloat80_t subjZ; uint_fast8_t subjFlags; genCases_i64_a_init(); genCases_writeTestsTotal( testLoops_forever ); verCases_errorCount = 0; verCases_tenThousandsCount = 0; count = 10000; while ( ! genCases_done || testLoops_forever ) { genCases_i64_a_next(); *testLoops_trueFlagsPtr = 0; trueFunction( genCases_i64_a, &trueZ ); trueFlags = *testLoops_trueFlagsPtr; testLoops_subjFlagsFunction(); subjFunction( genCases_i64_a, &subjZ ); subjFlags = testLoops_subjFlagsFunction(); --count; if ( ! count ) { verCases_perTenThousand(); count = 10000; } if ( ! extF80M_same( &trueZ, &subjZ ) || (trueFlags != subjFlags) ) { if ( verCases_checkNaNs || ! extF80M_isNaN( &trueZ ) || ! extF80M_isNaN( &subjZ ) || extF80M_isSignalingNaN( &subjZ ) || (trueFlags != subjFlags) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); writeCase_a_i64( genCases_i64_a, " " ); writeCase_z_extF80M( &trueZ, trueFlags, &subjZ, subjFlags ); if ( verCases_errorCount == verCases_maxErrorCount ) break; } } } verCases_writeTestsPerformed( 10000 - count ); }
void test_a_i64_z_f32( float32_t trueFunction( int64_t ), float32_t subjFunction( int64_t ) ) { int count; float32_t trueZ; uint_fast8_t trueFlags; float32_t subjZ; uint_fast8_t subjFlags; genCases_i64_a_init(); genCases_writeTestsTotal( testLoops_forever ); verCases_errorCount = 0; verCases_tenThousandsCount = 0; count = 10000; while ( ! genCases_done || testLoops_forever ) { genCases_i64_a_next(); *testLoops_trueFlagsPtr = 0; trueZ = trueFunction( genCases_i64_a ); trueFlags = *testLoops_trueFlagsPtr; testLoops_subjFlagsFunction(); subjZ = subjFunction( genCases_i64_a ); subjFlags = testLoops_subjFlagsFunction(); --count; if ( ! count ) { verCases_perTenThousand(); count = 10000; } if ( ! f32_same( trueZ, subjZ ) || (trueFlags != subjFlags) ) { if ( verCases_checkNaNs || ! f32_isNaN( trueZ ) || ! f32_isNaN( subjZ ) || f32_isSignalingNaN( subjZ ) || (trueFlags != subjFlags) ) { ++verCases_errorCount; verCases_writeErrorFound( 10000 - count ); writeCase_a_i64( genCases_i64_a, " " ); writeCase_z_f32( trueZ, trueFlags, subjZ, subjFlags ); if ( verCases_errorCount == verCases_maxErrorCount ) break; } } } verCases_writeTestsPerformed( 10000 - count ); }