template<typename T> T operator/(T x,T y) { AssertZero(y); return x/y; }
void test_assert_int() { int a=4, b=3, c=4, z=0, n=-1; AssertEq(a,c); AssertNe(a,b); AssertGt(a,b); AssertGe(a,b); AssertGe(a,c); AssertLt(b,a); AssertLe(b,a); AssertLe(c,a); AssertZero(z); test_failure( AssertZero(a) ); AssertNonzero(a); test_failure( AssertNonzero(z) ); AssertPositive(a); test_failure( AssertPositive(z) ); AssertNegative(n); test_failure( AssertNegative(z) ); test_failure( AssertEq(a,b) ); test_failure( AssertNe(a,c) ); test_failure( AssertGt(a,c) ); test_failure( AssertGt(b,c) ); test_failure( AssertGe(b,a) ); test_failure( AssertLt(c,a) ); test_failure( AssertLt(c,b) ); test_failure( AssertLe(a,b) ); AssertIntEq(a,c); AssertIntNe(a,b); AssertIntGt(a,b); AssertIntGe(a,b); AssertIntGe(a,c); AssertIntLt(b,a); AssertIntLe(b,a); AssertIntLe(c,a); test_failure( AssertIntEq(a,b) ); test_failure( AssertIntNe(a,c) ); test_failure( AssertIntGt(a,c) ); test_failure( AssertIntGt(b,c) ); test_failure( AssertIntGe(b,a) ); test_failure( AssertIntLt(c,a) ); test_failure( AssertIntLt(c,b) ); test_failure( AssertIntLe(a,b) ); AssertEqHex(a,c); AssertNeHex(a,b); AssertGtHex(a,b); AssertGeHex(a,b); AssertGeHex(a,c); AssertLtHex(b,a); AssertLeHex(b,a); AssertLeHex(c,a); test_failure( AssertEqHex(a,b) ); test_failure( AssertNeHex(a,c) ); test_failure( AssertGtHex(a,c) ); test_failure( AssertGtHex(b,c) ); test_failure( AssertGeHex(b,a) ); test_failure( AssertLtHex(c,a) ); test_failure( AssertLtHex(c,b) ); test_failure( AssertLeHex(a,b) ); }