#include "fail.h"

void check_add( float result, unsigned line )
{
    if( result != 21 ) fail(line);
}

void check_subtract( double result, unsigned line )
{
    if( result != 13 ) fail(line);
}

void check_multiply( unsigned long int result, unsigned line )
{
    if( result != 68 ) fail(line);
}

void check_divide( char result, unsigned line )
{
    if( result != 4 ) fail(line);
}


signed char sc1;
unsigned char uc1;
char c1;
signed short ss1;
unsigned short us1;
short s1;
signed int si1;
unsigned int ui1;
int i1;
signed long int sli1;
unsigned long int uli1;
long int li1;
float f1;
double d1;
long double ld1;

signed char sc2;
unsigned char uc2;
char c2;
signed short ss2;
unsigned short us2;
short s2;
signed int si2;
unsigned int ui2;
int i2;
signed long int sli2;
unsigned long int uli2;
long int li2;
float f2;
double d2;
long double ld2;

int main( void )
{
    si1 = 17;
    uli2 = 4;
    check_add( si1 + uli2, __LINE__ );
    check_subtract( si1 - uli2, __LINE__ );
    check_multiply( si1 * uli2, __LINE__ );
    check_divide( si1 / uli2, __LINE__ );
    si1 = 17;
    li2 = 4;
    check_add( si1 + li2, __LINE__ );
    check_subtract( si1 - li2, __LINE__ );
    check_multiply( si1 * li2, __LINE__ );
    check_divide( si1 / li2, __LINE__ );
    si1 = 17;
    f2 = 4;
    check_add( si1 + f2, __LINE__ );
    check_subtract( si1 - f2, __LINE__ );
    check_multiply( si1 * f2, __LINE__ );
    check_divide( si1 / f2, __LINE__ );
    si1 = 17;
    d2 = 4;
    check_add( si1 + d2, __LINE__ );
    check_subtract( si1 - d2, __LINE__ );
    check_multiply( si1 * d2, __LINE__ );
    check_divide( si1 / d2, __LINE__ );
    si1 = 17;
    ld2 = 4;
    check_add( si1 + ld2, __LINE__ );
    check_subtract( si1 - ld2, __LINE__ );
    check_multiply( si1 * ld2, __LINE__ );
    check_divide( si1 / ld2, __LINE__ );
    ui1 = 17;
    sc2 = 4;
    check_add( ui1 + sc2, __LINE__ );
    check_subtract( ui1 - sc2, __LINE__ );
    check_multiply( ui1 * sc2, __LINE__ );
    check_divide( ui1 / sc2, __LINE__ );
    ui1 = 17;
    uc2 = 4;
    check_add( ui1 + uc2, __LINE__ );
    check_subtract( ui1 - uc2, __LINE__ );
    check_multiply( ui1 * uc2, __LINE__ );
    check_divide( ui1 / uc2, __LINE__ );
    ui1 = 17;
    c2 = 4;
    check_add( ui1 + c2, __LINE__ );
    check_subtract( ui1 - c2, __LINE__ );
    check_multiply( ui1 * c2, __LINE__ );
    check_divide( ui1 / c2, __LINE__ );
    ui1 = 17;
    ss2 = 4;
    check_add( ui1 + ss2, __LINE__ );
    check_subtract( ui1 - ss2, __LINE__ );
    check_multiply( ui1 * ss2, __LINE__ );
    check_divide( ui1 / ss2, __LINE__ );
    ui1 = 17;
    us2 = 4;
    check_add( ui1 + us2, __LINE__ );
    check_subtract( ui1 - us2, __LINE__ );
    check_multiply( ui1 * us2, __LINE__ );
    check_divide( ui1 / us2, __LINE__ );
    ui1 = 17;
    s2 = 4;
    check_add( ui1 + s2, __LINE__ );
    check_subtract( ui1 - s2, __LINE__ );
    check_multiply( ui1 * s2, __LINE__ );
    check_divide( ui1 / s2, __LINE__ );
    ui1 = 17;
    si2 = 4;
    check_add( ui1 + si2, __LINE__ );
    check_subtract( ui1 - si2, __LINE__ );
    check_multiply( ui1 * si2, __LINE__ );
    check_divide( ui1 / si2, __LINE__ );
    ui1 = 17;
    ui2 = 4;
    check_add( ui1 + ui2, __LINE__ );
    check_subtract( ui1 - ui2, __LINE__ );
    check_multiply( ui1 * ui2, __LINE__ );
    check_divide( ui1 / ui2, __LINE__ );
    ui1 = 17;
    i2 = 4;
    check_add( ui1 + i2, __LINE__ );
    check_subtract( ui1 - i2, __LINE__ );
    check_multiply( ui1 * i2, __LINE__ );
    check_divide( ui1 / i2, __LINE__ );
    ui1 = 17;
    sli2 = 4;
    check_add( ui1 + sli2, __LINE__ );
    check_subtract( ui1 - sli2, __LINE__ );
    check_multiply( ui1 * sli2, __LINE__ );
    check_divide( ui1 / sli2, __LINE__ );
    ui1 = 17;
    uli2 = 4;
    check_add( ui1 + uli2, __LINE__ );
    check_subtract( ui1 - uli2, __LINE__ );
    check_multiply( ui1 * uli2, __LINE__ );
    check_divide( ui1 / uli2, __LINE__ );
    ui1 = 17;
    li2 = 4;
    check_add( ui1 + li2, __LINE__ );
    check_subtract( ui1 - li2, __LINE__ );
    check_multiply( ui1 * li2, __LINE__ );
    check_divide( ui1 / li2, __LINE__ );
    ui1 = 17;
    f2 = 4;
    check_add( ui1 + f2, __LINE__ );
    check_subtract( ui1 - f2, __LINE__ );
    check_multiply( ui1 * f2, __LINE__ );
    check_divide( ui1 / f2, __LINE__ );
    ui1 = 17;
    d2 = 4;
    check_add( ui1 + d2, __LINE__ );
    check_subtract( ui1 - d2, __LINE__ );
    check_multiply( ui1 * d2, __LINE__ );
    check_divide( ui1 / d2, __LINE__ );
    ui1 = 17;
    ld2 = 4;
    check_add( ui1 + ld2, __LINE__ );
    check_subtract( ui1 - ld2, __LINE__ );
    check_multiply( ui1 * ld2, __LINE__ );
    check_divide( ui1 / ld2, __LINE__ );
    i1 = 17;
    sc2 = 4;
    check_add( i1 + sc2, __LINE__ );
    check_subtract( i1 - sc2, __LINE__ );
    check_multiply( i1 * sc2, __LINE__ );
    check_divide( i1 / sc2, __LINE__ );
    i1 = 17;
    uc2 = 4;
    check_add( i1 + uc2, __LINE__ );
    check_subtract( i1 - uc2, __LINE__ );
    check_multiply( i1 * uc2, __LINE__ );
    check_divide( i1 / uc2, __LINE__ );
    i1 = 17;
    c2 = 4;
    check_add( i1 + c2, __LINE__ );
    check_subtract( i1 - c2, __LINE__ );
    check_multiply( i1 * c2, __LINE__ );
    check_divide( i1 / c2, __LINE__ );
    i1 = 17;
    ss2 = 4;
    check_add( i1 + ss2, __LINE__ );
    check_subtract( i1 - ss2, __LINE__ );
    check_multiply( i1 * ss2, __LINE__ );
    check_divide( i1 / ss2, __LINE__ );
    i1 = 17;
    us2 = 4;
    check_add( i1 + us2, __LINE__ );
    check_subtract( i1 - us2, __LINE__ );
    check_multiply( i1 * us2, __LINE__ );
    check_divide( i1 / us2, __LINE__ );
    i1 = 17;
    s2 = 4;
    check_add( i1 + s2, __LINE__ );
    check_subtract( i1 - s2, __LINE__ );
    check_multiply( i1 * s2, __LINE__ );
    check_divide( i1 / s2, __LINE__ );
    i1 = 17;
    si2 = 4;
    check_add( i1 + si2, __LINE__ );
    check_subtract( i1 - si2, __LINE__ );
    check_multiply( i1 * si2, __LINE__ );
    check_divide( i1 / si2, __LINE__ );
    i1 = 17;
    ui2 = 4;
    check_add( i1 + ui2, __LINE__ );
    check_subtract( i1 - ui2, __LINE__ );
    check_multiply( i1 * ui2, __LINE__ );
    check_divide( i1 / ui2, __LINE__ );
    i1 = 17;
    i2 = 4;
    check_add( i1 + i2, __LINE__ );
    check_subtract( i1 - i2, __LINE__ );
    check_multiply( i1 * i2, __LINE__ );
    check_divide( i1 / i2, __LINE__ );
    i1 = 17;
    sli2 = 4;
    check_add( i1 + sli2, __LINE__ );
    check_subtract( i1 - sli2, __LINE__ );
    check_multiply( i1 * sli2, __LINE__ );
    check_divide( i1 / sli2, __LINE__ );
    i1 = 17;
    uli2 = 4;
    check_add( i1 + uli2, __LINE__ );
    check_subtract( i1 - uli2, __LINE__ );
    check_multiply( i1 * uli2, __LINE__ );
    check_divide( i1 / uli2, __LINE__ );
    i1 = 17;
    li2 = 4;
    check_add( i1 + li2, __LINE__ );
    check_subtract( i1 - li2, __LINE__ );
    check_multiply( i1 * li2, __LINE__ );
    check_divide( i1 / li2, __LINE__ );
    i1 = 17;
    f2 = 4;
    check_add( i1 + f2, __LINE__ );
    check_subtract( i1 - f2, __LINE__ );
    check_multiply( i1 * f2, __LINE__ );
    check_divide( i1 / f2, __LINE__ );
    i1 = 17;
    d2 = 4;
    check_add( i1 + d2, __LINE__ );
    check_subtract( i1 - d2, __LINE__ );
    check_multiply( i1 * d2, __LINE__ );
    check_divide( i1 / d2, __LINE__ );
    i1 = 17;
    ld2 = 4;
    check_add( i1 + ld2, __LINE__ );
    check_subtract( i1 - ld2, __LINE__ );
    check_multiply( i1 * ld2, __LINE__ );
    check_divide( i1 / ld2, __LINE__ );
    sli1 = 17;
    sc2 = 4;
    check_add( sli1 + sc2, __LINE__ );
    check_subtract( sli1 - sc2, __LINE__ );
    check_multiply( sli1 * sc2, __LINE__ );
    check_divide( sli1 / sc2, __LINE__ );
    sli1 = 17;
    uc2 = 4;
    check_add( sli1 + uc2, __LINE__ );
    check_subtract( sli1 - uc2, __LINE__ );
    check_multiply( sli1 * uc2, __LINE__ );
    check_divide( sli1 / uc2, __LINE__ );
    sli1 = 17;
    c2 = 4;
    check_add( sli1 + c2, __LINE__ );
    check_subtract( sli1 - c2, __LINE__ );
    check_multiply( sli1 * c2, __LINE__ );
    check_divide( sli1 / c2, __LINE__ );
    sli1 = 17;
    ss2 = 4;
    check_add( sli1 + ss2, __LINE__ );
    check_subtract( sli1 - ss2, __LINE__ );
    check_multiply( sli1 * ss2, __LINE__ );
    check_divide( sli1 / ss2, __LINE__ );
    sli1 = 17;
    us2 = 4;
    check_add( sli1 + us2, __LINE__ );
    check_subtract( sli1 - us2, __LINE__ );
    check_multiply( sli1 * us2, __LINE__ );
    check_divide( sli1 / us2, __LINE__ );
    sli1 = 17;
    s2 = 4;
    check_add( sli1 + s2, __LINE__ );
    check_subtract( sli1 - s2, __LINE__ );
    check_multiply( sli1 * s2, __LINE__ );
    check_divide( sli1 / s2, __LINE__ );
    sli1 = 17;
    si2 = 4;
    check_add( sli1 + si2, __LINE__ );
    check_subtract( sli1 - si2, __LINE__ );
    check_multiply( sli1 * si2, __LINE__ );
    check_divide( sli1 / si2, __LINE__ );
    sli1 = 17;
    ui2 = 4;
    check_add( sli1 + ui2, __LINE__ );
    check_subtract( sli1 - ui2, __LINE__ );
    check_multiply( sli1 * ui2, __LINE__ );
    check_divide( sli1 / ui2, __LINE__ );
    sli1 = 17;
    i2 = 4;
    check_add( sli1 + i2, __LINE__ );
    check_subtract( sli1 - i2, __LINE__ );
    check_multiply( sli1 * i2, __LINE__ );
    check_divide( sli1 / i2, __LINE__ );
    sli1 = 17;
    sli2 = 4;
    check_add( sli1 + sli2, __LINE__ );
    check_subtract( sli1 - sli2, __LINE__ );
    check_multiply( sli1 * sli2, __LINE__ );
    check_divide( sli1 / sli2, __LINE__ );
    sli1 = 17;
    uli2 = 4;
    check_add( sli1 + uli2, __LINE__ );
    check_subtract( sli1 - uli2, __LINE__ );
    check_multiply( sli1 * uli2, __LINE__ );
    check_divide( sli1 / uli2, __LINE__ );
    sli1 = 17;
    li2 = 4;
    check_add( sli1 + li2, __LINE__ );
    check_subtract( sli1 - li2, __LINE__ );
    check_multiply( sli1 * li2, __LINE__ );
    check_divide( sli1 / li2, __LINE__ );
    sli1 = 17;
    f2 = 4;
    check_add( sli1 + f2, __LINE__ );
    check_subtract( sli1 - f2, __LINE__ );
    check_multiply( sli1 * f2, __LINE__ );
    check_divide( sli1 / f2, __LINE__ );
    sli1 = 17;
    d2 = 4;
    check_add( sli1 + d2, __LINE__ );
    check_subtract( sli1 - d2, __LINE__ );
    check_multiply( sli1 * d2, __LINE__ );
    check_divide( sli1 / d2, __LINE__ );
    sli1 = 17;
    ld2 = 4;
    check_add( sli1 + ld2, __LINE__ );
    check_subtract( sli1 - ld2, __LINE__ );
    check_multiply( sli1 * ld2, __LINE__ );
    check_divide( sli1 / ld2, __LINE__ );
    uli1 = 17;
    sc2 = 4;
    check_add( uli1 + sc2, __LINE__ );
    check_subtract( uli1 - sc2, __LINE__ );
    check_multiply( uli1 * sc2, __LINE__ );
    check_divide( uli1 / sc2, __LINE__ );
    uli1 = 17;
    uc2 = 4;
    check_add( uli1 + uc2, __LINE__ );
    check_subtract( uli1 - uc2, __LINE__ );
    check_multiply( uli1 * uc2, __LINE__ );
    check_divide( uli1 / uc2, __LINE__ );
    uli1 = 17;
    c2 = 4;
    check_add( uli1 + c2, __LINE__ );
    check_subtract( uli1 - c2, __LINE__ );
    check_multiply( uli1 * c2, __LINE__ );
    check_divide( uli1 / c2, __LINE__ );
    uli1 = 17;
    ss2 = 4;
    check_add( uli1 + ss2, __LINE__ );
    check_subtract( uli1 - ss2, __LINE__ );
    check_multiply( uli1 * ss2, __LINE__ );
    check_divide( uli1 / ss2, __LINE__ );
    uli1 = 17;
    us2 = 4;
    check_add( uli1 + us2, __LINE__ );
    check_subtract( uli1 - us2, __LINE__ );
    check_multiply( uli1 * us2, __LINE__ );
    check_divide( uli1 / us2, __LINE__ );
    uli1 = 17;
    s2 = 4;
    check_add( uli1 + s2, __LINE__ );
    check_subtract( uli1 - s2, __LINE__ );
    check_multiply( uli1 * s2, __LINE__ );
    check_divide( uli1 / s2, __LINE__ );
    uli1 = 17;
    si2 = 4;
    check_add( uli1 + si2, __LINE__ );
    check_subtract( uli1 - si2, __LINE__ );
    check_multiply( uli1 * si2, __LINE__ );
    check_divide( uli1 / si2, __LINE__ );
    uli1 = 17;
    ui2 = 4;
    check_add( uli1 + ui2, __LINE__ );
    check_subtract( uli1 - ui2, __LINE__ );
    check_multiply( uli1 * ui2, __LINE__ );
    check_divide( uli1 / ui2, __LINE__ );
    uli1 = 17;
    i2 = 4;
    check_add( uli1 + i2, __LINE__ );
    check_subtract( uli1 - i2, __LINE__ );
    check_multiply( uli1 * i2, __LINE__ );
    check_divide( uli1 / i2, __LINE__ );
    uli1 = 17;
    sli2 = 4;
    check_add( uli1 + sli2, __LINE__ );
    check_subtract( uli1 - sli2, __LINE__ );
    check_multiply( uli1 * sli2, __LINE__ );
    check_divide( uli1 / sli2, __LINE__ );
    uli1 = 17;
    uli2 = 4;
    check_add( uli1 + uli2, __LINE__ );
    check_subtract( uli1 - uli2, __LINE__ );
    check_multiply( uli1 * uli2, __LINE__ );
    check_divide( uli1 / uli2, __LINE__ );
    uli1 = 17;
    li2 = 4;
    check_add( uli1 + li2, __LINE__ );
    check_subtract( uli1 - li2, __LINE__ );
    check_multiply( uli1 * li2, __LINE__ );
    check_divide( uli1 / li2, __LINE__ );
    uli1 = 17;
    f2 = 4;
    check_add( uli1 + f2, __LINE__ );
    check_subtract( uli1 - f2, __LINE__ );
    check_multiply( uli1 * f2, __LINE__ );
    check_divide( uli1 / f2, __LINE__ );
    uli1 = 17;
    d2 = 4;
    check_add( uli1 + d2, __LINE__ );
    check_subtract( uli1 - d2, __LINE__ );
    check_multiply( uli1 * d2, __LINE__ );
    check_divide( uli1 / d2, __LINE__ );
    uli1 = 17;
    ld2 = 4;
    check_add( uli1 + ld2, __LINE__ );
    check_subtract( uli1 - ld2, __LINE__ );
    check_multiply( uli1 * ld2, __LINE__ );
    check_divide( uli1 / ld2, __LINE__ );
    li1 = 17;
    sc2 = 4;
    check_add( li1 + sc2, __LINE__ );
    check_subtract( li1 - sc2, __LINE__ );
    check_multiply( li1 * sc2, __LINE__ );
    check_divide( li1 / sc2, __LINE__ );
    li1 = 17;
    uc2 = 4;
    check_add( li1 + uc2, __LINE__ );
    check_subtract( li1 - uc2, __LINE__ );
    check_multiply( li1 * uc2, __LINE__ );
    check_divide( li1 / uc2, __LINE__ );
    _PASS;
}
