Skip to content

Instantly share code, notes, and snippets.

@pyetras
Created November 17, 2010 15:44
Show Gist options
  • Save pyetras/703529 to your computer and use it in GitHub Desktop.
Save pyetras/703529 to your computer and use it in GitHub Desktop.
int main() {
{
Rational a(1, 3), b, c(a), d, e(1);
d = a;
e = 1;
assert(d == a);
assert(b == Zero());
assert(e == One());
assert(a && !b);
assert((a / b).isNumber() == false);
assert((a / b + 1).isNumber() == false);
assert(a / a == One());
assert(a != b);
assert(One() - One() == Zero());
assert(0 == Zero());
assert(1 != Zero());
assert(Zero() != 1);
assert((a/b != a/b)==false);
assert((a/b < 1)==false);
assert((a/b > 1)==false);
assert((a/b <= a/b)==false);
assert((a/b >= 0)==false);
assert((a/b == a/b)==false);
assert((1 == a/b)==false);
assert((a/b != a/b)==false);
assert((Rational(10) / Rational(11, 0)).isNumber() == false);
assert((Rational(10) + Rational(11, 0)).isNumber() == false);
assert((Rational(10) - Rational(11, 0)).isNumber() == false);
assert((Rational(10) * Rational(11, 0)).isNumber() == false);
assert((Rational(11, 0) * Rational(10)).isNumber() == false);
std::cout << (a / b) << '\n';
std::cout << Rational(-7,2) << '\n';
std::cout << Zero() << '\n';
std::cout << Rational(1, 0) << '\n';
std::cout << (b/a).n() << "/" << (b/a).d() << std::endl;
}
{
assert(Rational(1, 4) + Rational(1, 4) == Rational(1,2));
assert(Rational(1, 3) * Rational(1, 3) == Rational(1, 9));
assert(Rational(1, 3) > Rational(1, 9));
assert(Rational(-1, 3) == Rational(1, -3));
assert(Rational(1, 3) + Rational(1, 3) + Rational(1, 3) == One());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment