mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[poincare] Add tests on Rational operations
This commit is contained in:
@@ -61,6 +61,25 @@ QUIZ_CASE(poincare_rational_properties) {
|
||||
assert(!Rational(-1).isTen());
|
||||
}
|
||||
|
||||
static inline void assert_add_to(const Rational i, const Rational j, const Rational k) {
|
||||
assert(Rational::NaturalOrder(Rational::Addition(i, j), k) == 0);
|
||||
}
|
||||
|
||||
QUIZ_CASE(poincare_rational_addition) {
|
||||
assert_add_to(Rational(1,2), Rational(1), Rational(3,2));
|
||||
assert_add_to(Rational("18446744073709551616","4294967296"), Rational(8,9), Rational("38654705672","9"));
|
||||
assert_add_to(Rational("18446744073709551616","4294967296"), Rational(-8,9), Rational("38654705656",9));
|
||||
}
|
||||
|
||||
static inline void assert_pow_to(const Rational i,const NaturalIntegerPointer j, ExpressionNode::Sign jSign, const Rational k) {
|
||||
assert(Rational::NaturalOrder(Rational::IntegerPower(i, j, jSign), k) == 0);
|
||||
}
|
||||
|
||||
QUIZ_CASE(poincare_rational_power) {
|
||||
assert_pow_to(Rational(4,5), Rational(3).naturalIntegerPointerNumerator(), Rational(3).sign(), Rational(64,125));
|
||||
assert_pow_to(Rational(4,5), Rational(-3).naturalIntegerPointerNumerator(), Rational(-3).sign(), Rational(125,64));
|
||||
}
|
||||
|
||||
QUIZ_CASE(poincare_rational_evaluate) {
|
||||
#if 0
|
||||
assert_parsed_expression_evaluates_to<float>("1/3", "0.3333333");
|
||||
|
||||
Reference in New Issue
Block a user