Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main(){
- Rational r;
- assert(r.n() == 0);
- assert(r.d() == 1);
- std::cout << r << std::endl; //0
- r = 3;
- assert(r.n() == 3);
- assert(r.d() == 1);
- std::cout << r << std::endl; //3
- r = -4;
- assert(r.n() == -4);
- assert(r.d() == 1);
- std::cout << r << std::endl; //-4
- r = 0;
- assert(r.n() == 0);
- assert(r.d() == 1);
- r *= 3;
- assert(r.n() == 0);
- assert(r.d() == 1);
- r += 12;
- assert(r.n() == 12);
- assert(r.d() == 1);
- std::cout << r << std::endl; //12
- r /= 4;
- assert(r.n() == 3);
- assert(r.d() == 1);
- std::cout << r << std::endl; //3
- r /= -3;
- std::cout << r.n() << " " << r.d() << std::endl;
- assert(r.n() == -1);
- assert(r.d() == 1);
- std::cout << r << std::endl; //-1
- r /= -3;
- assert(r.n() == 1);
- assert(r.d() == 3);
- std::cout << r << std::endl; //1/3
- r -= r;
- assert(r.n() == 0);
- assert(r.d() == 1);
- std::cout << r << std::endl; //0
- assert(Rational(1, 45).n() == 1);
- assert(Rational(0, 45).n() == 0);
- assert(Rational(1, 45).d() == 45);
- assert(Rational(-3, 45).n() == -1);
- assert(Rational(-125, 45).n() == -25);
- assert(Rational(1, 0).isNumber() == false);
- assert(Rational(-23, 0).isNumber() == false);
- assert(Rational(0, 0).isNumber() == false);
- assert(Rational(24, 0).isNumber() == false);
- std::cout << Rational(15, -45).n() << std::endl;
- assert(Rational(15, -45).n() == -1);
- assert(Rational(15, -45).d() == 3);
- assert(Rational(15, -45).isNumber());
- assert(Rational(0, 123456789).isNumber());
- r = Rational(2,10);
- assert(r * 5 == 1);
- std::cout << r << std::endl; //1/5
- r = Rational(3,-9);
- assert(r * 6 == -2);
- std::cout << r << std::endl; //-1/3
- r = Rational(4,2);
- assert(r / -2 == -1);
- std::cout << r << std::endl; //2
- r = Rational(-7,-2);
- assert((r / 7) * 4 == 2);
- std::cout << r << std::endl; //3+1/2
- r = Rational(26, -8);
- std::cout << r << std::endl; //-3-1/4 (???)
- Rational p(-314, 100);
- assert(p > r);
- assert(r < p);
- assert(p == p);int main(){
- Rational r;
- assert(r.n() == 0);
- assert(r.d() == 1);
- std::cout << r << std::endl; //0
- r = 3;
- assert(r.n() == 3);
- assert(r.d() == 1);
- std::cout << r << std::endl; //3
- r = -4;
- assert(r.n() == -4);
- assert(r.d() == 1);
- std::cout << r << std::endl; //-4
- r = 0;
- assert(r.n() == 0);
- assert(r.d() == 1);
- r *= 3;
- assert(r.n() == 0);
- assert(r.d() == 1);
- r += 12;
- assert(r.n() == 12);
- assert(r.d() == 1);
- std::cout << r << std::endl; //12
- r /= 4;
- assert(r.n() == 3);
- assert(r.d() == 1);
- std::cout << r << std::endl; //3
- r /= -3;
- std::cout << r.n() << " " << r.d() << std::endl;
- assert(r.n() == -1);
- assert(r.d() == 1);
- std::cout << r << std::endl; //-1
- r /= -3;
- assert(r.n() == 1);
- assert(r.d() == 3);
- std::cout << r << std::endl; //1/3
- r -= r;
- assert(r.n() == 0);
- assert(r.d() == 1);
- std::cout << r << std::endl; //0
- assert(Rational(1, 45).n() == 1);
- assert(Rational(0, 45).n() == 0);
- assert(Rational(1, 45).d() == 45);
- assert(Rational(-3, 45).n() == -1);
- assert(Rational(-125, 45).n() == -25);
- assert(Rational(1, 0).isNumber() == false);
- assert(Rational(-23, 0).isNumber() == false);
- assert(Rational(0, 0).isNumber() == false);
- assert(Rational(24, 0).isNumber() == false);
- std::cout << Rational(15, -45).n() << std::endl;
- assert(Rational(15, -45).n() == -1);
- assert(Rational(15, -45).d() == 3);
- assert(Rational(15, -45).isNumber());
- assert(Rational(0, 123456789).isNumber());
- r = Rational(2,10);
- assert(r * 5 == 1);
- std::cout << r << std::endl; //1/5
- r = Rational(3,-9);
- assert(r * 6 == -2);
- std::cout << r << std::endl; //-1/3
- r = Rational(4,2);
- assert(r / -2 == -1);
- std::cout << r << std::endl; //2
- r = Rational(-7,-2);
- assert((r / 7) * 4 == 2);
- std::cout << r << std::endl; //3+1/2
- r = Rational(26, -8);
- std::cout << r << std::endl; //-3-1/4 (???)
- Rational p(-314, 100);
- assert(p > r);
- assert(r < p);
- assert(p == p);
- assert(p != r);
- assert(p >= r);
- assert(r <= p);
- assert(p > -4);
- assert(p >= p);
- assert(-2 > r);
- assert(r < -2);
- assert(-6 <= r);
- assert(p != 3);
- assert(9/Rational(3) == 3);
- r = Rational(-1, 2);
- p = Rational(2, 19);
- assert(p > r);
- assert(!(p < r));
- assert(!(p == r));
- assert(p != r);
- assert(p >= r);
- assert(!(p <= r));
- assert(!(r > p));
- assert((r < p));
- assert(!(r == p));
- assert(r != p);
- assert(!(r >= p));
- assert((r <= p));
- p = Rational(-2, 17);
- assert(p > r);
- assert(!(p < r));
- assert(!(p == r));
- assert(p != r);
- assert(p >= r);
- assert(!(p <= r));
- assert(!(r > p));
- assert((r < p));
- assert(!(r == p));
- assert(r != p);
- assert(!(r >= p));
- assert((r <= p));
- r = Rational(1, 14);
- p = Rational(2, 15);
- assert(!(r > p));
- assert((r < p));
- assert(!(r == p));
- assert(r != p);
- assert(!(r >= p));
- assert((r <= p));
- r = Rational(-1, 14);
- p = Rational(1, -14);
- assert(!(r > p));
- assert(!(r < p));
- assert((r == p));
- assert(!(r != p));
- assert((r >= p));
- assert((r <= p));
- p *= -1;
- assert(r < 0);
- assert(r <= 0);
- assert(r != 0);
- assert(!(r == 0));
- assert(!(p < 0));
- assert(!(p <= 0));
- assert(p != 0);
- assert(!(p == 0));
- assert(0 < p);
- assert(0 <= p);
- std::cout<<p;
- assert(0 != p);
- assert(!(0 == p));
- assert(!(0 < r));
- assert(!(0 <= r));
- assert(0 != r);
- assert(!(0 == r));
- r = 1;
- std::cout << r << std::endl; //1
- r /= 0;
- assert(!r.isNumber());
- assert(!(r < r));
- assert(!(r <= r));
- assert(!(r > r));
- assert(!(r >= r));
- assert(!(r == r));
- assert(!(r != r));
- assert(!(r < 1));
- assert(!(r <= 1));
- assert(!(r > 1));
- assert(!(r >= 1));
- assert(!(r == 1));
- assert(!(r != 1));
- assert(!(1 < r));
- assert(!(1 <= r));
- assert(!(1 > r));
- assert(!(1 >= r));
- assert(!(1 == r));
- assert(!(1 != r));
- assert(!(r < -1));
- assert(!(r <= -1));
- assert(!(r > -1));
- assert(!(r >= -1));
- assert(!(r == -1));
- assert(!(r != -1));
- assert(!(-1 < r));
- assert(!(-1 <= r));
- assert(!(-1 > r));
- assert(!(-1 >= r));
- assert(!(-1 == r));
- assert(!(-1 != r));
- assert(!(r < p));
- assert(!(r <= p));
- assert(!(r > p));
- assert(!(r >= p));
- assert(!(r == p));
- //NaN
- assert(!(r + p).isNumber());
- assert(!(r - p).isNumber());
- assert(!(r * p).isNumber());
- assert(!(r / p).isNumber());
- assert(!(-r).isNumber());
- assert(!(r += p).isNumber());
- assert(!(r -= p).isNumber());
- assert(!(r *= p).isNumber());
- assert(!(r /= p).isNumber());
- assert(!(r + 1).isNumber());
- assert(!(r - 2).isNumber());
- assert(!(r * 3).isNumber());
- assert(!(r / 4).isNumber());
- assert(!(r += 5).isNumber());
- assert(!(r -= 6).isNumber());
- assert(!(r /= 7).isNumber());
- assert(!(r *= 8).isNumber());
- assert(!(1 + r).isNumber());
- assert(!(p + r).isNumber());
- assert(!(p - r).isNumber());
- assert(!(p * r).isNumber());
- assert(!(p / r).isNumber());
- assert(!(-r).isNumber());
- Rational g;
- assert(!((g = Rational(1)) += r).isNumber());
- assert(!((g = Rational(1)) -= r).isNumber());
- assert(!((g = Rational(1)) *= r).isNumber());
- assert(!((g = Rational(1)) /= r).isNumber());
- assert(!(1 + r).isNumber());
- assert(!(2 - r).isNumber());
- assert(!(3 * r).isNumber());
- assert(!(4 / r).isNumber());
- assert(!(1 + r).isNumber());
- r = Rational(0, 1);
- assert(!(1 / r).isNumber());
- assert(!(p / r).isNumber());
- assert(!(r / r).isNumber());
- assert(Zero() == 0);
- assert(!(Zero() > 0));
- assert(Zero() >= 0);
- assert(!(Zero() < 0));
- assert((Zero() <= 0));
- assert(!(Zero() != 0));
- assert(!(Zero() == 1));
- assert(!(Zero() > 1));
- assert(!(Zero() >= 1));
- assert((Zero() < 1));
- assert((Zero() <= 1));
- assert((Zero() != 1));
- assert(One() == 1);
- assert(One() > 0);
- assert(One() >= 0);
- assert(!(One() < 0));
- assert(!(One() <= 0));
- assert(One() != 0);
- Rational e;
- assert((Rational(1,2) + Rational(1,3)) == Rational(5,6));
- assert((Rational(4,9) - Rational(1,3)) == Rational(1,9));
- assert((Rational(1,2) / Rational(1,3)) == Rational(3,2));
- assert((Rational(7,2) * Rational(1,3)) == Rational(7,6));
- assert((Rational(10,15) + Rational(1,3)) == Rational(1));
- assert((Rational(2) + Rational(1,3)) == Rational(7, 3));
- assert((Rational(-2, 9) * Rational(3, 2)) == Rational(-1, 3));
- assert((Rational(5,2) / Rational(1,2)) == Rational(5));
- assert(((e = Rational(7,60)) += Rational(1,3)) == Rational(27,60));
- assert(((e = Rational(15,124)) -= Rational(1,5)) == Rational(-49,620));
- assert(((e = Rational(14,39)) *= Rational(0, 121)) == Rational(0));
- assert(((e = Rational(1,2)) /= Rational(17,2)) == Rational(1,17));
- assert((13 + Rational(1,3)) == Rational(40,3));
- assert((13 - Rational(1,3)) == Rational(38,3));
- assert((-4 * Rational(-1,3)) == Rational(4,3));
- assert((18 / Rational(3,7)) == Rational(42));
- assert(((e = Rational(1,3)) += 13) == Rational(40,3));
- assert(((e = Rational(1,3)) -= 13) == Rational(-38,3));
- assert(((e = Rational(6)) *= 2) == Rational(12));
- assert(((e = Rational(6)) /= 2) == Rational(3));
- assert(((e = Rational(1,3)) + 13) == Rational(40,3));
- assert(((e = Rational(1,3)) - 13) == Rational(-38,3));
- assert(((e = Rational(6)) * 2) == Rational(12));
- assert(((e = Rational(6)) / 2) == Rational(3));
- r = Rational(17, 13);
- assert(r);
- assert(Rational(7));
- assert(Rational(-13));
- assert(Rational(1));
- assert(Rational(7,2));
- assert(Rational(3,4));
- assert(Rational(17,17));
- assert(!Rational(0,0));
- assert(!Rational(0,17));
- assert(!Rational(17,0));
- std::cout<<"OK"<<std::endl;
- std::cout << (Rational(2,1) < 1) << std::endl;
- std::cout << (Rational(2,1) > 1) << std::endl;
- return 0;
- }
- assert(p != r);
- assert(p >= r);
- assert(r <= p);
- assert(p > -4);
- assert(p >= p);
- assert(-2 > r);
- assert(r < -2);
- assert(-6 <= r);
- assert(p != 3);
- assert(9/Rational(3) == 3);
- r = Rational(-1, 2);
- p = Rational(2, 19);
- assert(p > r);
- assert(!(p < r));
- assert(!(p == r));
- assert(p != r);
- assert(p >= r);
- assert(!(p <= r));
- assert(!(r > p));
- assert((r < p));
- assert(!(r == p));
- assert(r != p);
- assert(!(r >= p));
- assert((r <= p));
- p = Rational(-2, 17);
- assert(p > r);
- assert(!(p < r));
- assert(!(p == r));
- assert(p != r);
- assert(p >= r);
- assert(!(p <= r));
- assert(!(r > p));
- assert((r < p));
- assert(!(r == p));
- assert(r != p);
- assert(!(r >= p));
- assert((r <= p));
- r = Rational(1, 14);
- p = Rational(2, 15);
- assert(!(r > p));
- assert((r < p));
- assert(!(r == p));
- assert(r != p);
- assert(!(r >= p));
- assert((r <= p));
- r = Rational(-1, 14);
- p = Rational(1, -14);
- assert(!(r > p));
- assert(!(r < p));
- assert((r == p));
- assert(!(r != p));
- assert((r >= p));
- assert((r <= p));
- p *= -1;
- assert(r < 0);
- assert(r <= 0);
- assert(r != 0);
- assert(!(r == 0));
- assert(!(p < 0));
- assert(!(p <= 0));
- assert(p != 0);
- assert(!(p == 0));
- assert(0 < p);
- assert(0 <= p);
- std::cout<<p;
- assert(0 != p);
- assert(!(0 == p));
- assert(!(0 < r));
- assert(!(0 <= r));
- assert(0 != r);
- assert(!(0 == r));
- r = 1;
- std::cout << r << std::endl; //1
- r /= 0;
- assert(!r.isNumber());
- assert(!(r < r));
- assert(!(r <= r));
- assert(!(r > r));
- assert(!(r >= r));
- assert(!(r == r));
- assert(!(r != r));
- assert(!(r < 1));
- assert(!(r <= 1));
- assert(!(r > 1));
- assert(!(r >= 1));
- assert(!(r == 1));
- assert(!(r != 1));
- assert(!(1 < r));
- assert(!(1 <= r));
- assert(!(1 > r));
- assert(!(1 >= r));
- assert(!(1 == r));
- assert(!(1 != r));
- assert(!(r < -1));
- assert(!(r <= -1));
- assert(!(r > -1));
- assert(!(r >= -1));
- assert(!(r == -1));
- assert(!(r != -1));
- assert(!(-1 < r));
- assert(!(-1 <= r));
- assert(!(-1 > r));
- assert(!(-1 >= r));
- assert(!(-1 == r));
- assert(!(-1 != r));
- assert(!(r < p));
- assert(!(r <= p));
- assert(!(r > p));
- assert(!(r >= p));
- assert(!(r == p));
- //NaN
- assert(!(r + p).isNumber());
- assert(!(r - p).isNumber());
- assert(!(r * p).isNumber());
- assert(!(r / p).isNumber());
- assert(!(-r).isNumber());
- assert(!(r += p).isNumber());
- assert(!(r -= p).isNumber());
- assert(!(r *= p).isNumber());
- assert(!(r /= p).isNumber());
- assert(!(r + 1).isNumber());
- assert(!(r - 2).isNumber());
- assert(!(r * 3).isNumber());
- assert(!(r / 4).isNumber());
- assert(!(r += 5).isNumber());
- assert(!(r -= 6).isNumber());
- assert(!(r /= 7).isNumber());
- assert(!(r *= 8).isNumber());
- assert(!(1 + r).isNumber());
- assert(!(p + r).isNumber());
- assert(!(p - r).isNumber());
- assert(!(p * r).isNumber());
- assert(!(p / r).isNumber());
- assert(!(-r).isNumber());
- Rational g;
- assert(!((g = Rational(1)) += r).isNumber());
- assert(!((g = Rational(1)) -= r).isNumber());
- assert(!((g = Rational(1)) *= r).isNumber());
- assert(!((g = Rational(1)) /= r).isNumber());
- assert(!(1 + r).isNumber());
- assert(!(2 - r).isNumber());
- assert(!(3 * r).isNumber());
- assert(!(4 / r).isNumber());
- assert(!(1 + r).isNumber());
- r = Rational(0, 1);
- assert(!(1 / r).isNumber());
- assert(!(p / r).isNumber());
- assert(!(r / r).isNumber());
- assert(Zero() == 0);
- assert(!(Zero() > 0));
- assert(Zero() >= 0);
- assert(!(Zero() < 0));
- assert((Zero() <= 0));
- assert(!(Zero() != 0));
- assert(!(Zero() == 1));
- assert(!(Zero() > 1));
- assert(!(Zero() >= 1));
- assert((Zero() < 1));
- assert((Zero() <= 1));
- assert((Zero() != 1));
- assert(One() == 1);
- assert(One() > 0);
- assert(One() >= 0);
- assert(!(One() < 0));
- assert(!(One() <= 0));
- assert(One() != 0);
- Rational e;
- assert((Rational(1,2) + Rational(1,3)) == Rational(5,6));
- assert((Rational(4,9) - Rational(1,3)) == Rational(1,9));
- assert((Rational(1,2) / Rational(1,3)) == Rational(3,2));
- assert((Rational(7,2) * Rational(1,3)) == Rational(7,6));
- assert((Rational(10,15) + Rational(1,3)) == Rational(1));
- assert((Rational(2) + Rational(1,3)) == Rational(7, 3));
- assert((Rational(-2, 9) * Rational(3, 2)) == Rational(-1, 3));
- assert((Rational(5,2) / Rational(1,2)) == Rational(5));
- assert(((e = Rational(7,60)) += Rational(1,3)) == Rational(27,60));
- assert(((e = Rational(15,124)) -= Rational(1,5)) == Rational(-49,620));
- assert(((e = Rational(14,39)) *= Rational(0, 121)) == Rational(0));
- assert(((e = Rational(1,2)) /= Rational(17,2)) == Rational(1,17));
- assert((13 + Rational(1,3)) == Rational(40,3));
- assert((13 - Rational(1,3)) == Rational(38,3));
- assert((-4 * Rational(-1,3)) == Rational(4,3));
- assert((18 / Rational(3,7)) == Rational(42));
- assert(((e = Rational(1,3)) += 13) == Rational(40,3));
- assert(((e = Rational(1,3)) -= 13) == Rational(-38,3));
- assert(((e = Rational(6)) *= 2) == Rational(12));
- assert(((e = Rational(6)) /= 2) == Rational(3));
- assert(((e = Rational(1,3)) + 13) == Rational(40,3));
- assert(((e = Rational(1,3)) - 13) == Rational(-38,3));
- assert(((e = Rational(6)) * 2) == Rational(12));
- assert(((e = Rational(6)) / 2) == Rational(3));
- r = Rational(17, 13);
- assert(r);
- assert(Rational(7));
- assert(Rational(-13));
- assert(Rational(1));
- assert(Rational(7,2));
- assert(Rational(3,4));
- assert(Rational(17,17));
- assert(!Rational(0,0));
- assert(!Rational(0,17));
- assert(!Rational(17,0));
- std::cout<<"OK"<<std::endl;
- std::cout << (Rational(2,1) < 1) << std::endl;
- std::cout << (Rational(2,1) > 1) << std::endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement