aboutsummaryrefslogtreecommitdiff
path: root/test/common/rational.h
blob: f1a4ea6ab24f4bc874336e7d4eec0d3ea61eeddd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <cxxtest/TestSuite.h>

#include "common/rational.h"

class RationalTestSuite : public CxxTest::TestSuite {
public:
	void test_operators() {
		Common::Rational r0(6, 3);
		Common::Rational r1(1, 2);

		Common::Rational r2(62, 2);
		Common::Rational r3(34, 4);

		Common::Rational r4 = (r0 + r1) * 3;
		Common::Rational r5 = (r2 - r3) / 3;

		Common::Rational r6 = r5 - 1;

		TS_ASSERT(r4 == r5);

		TS_ASSERT(-r4 == -r5);

		TS_ASSERT(  r4 >  r6);
		TS_ASSERT(  r4 >= r6);
		TS_ASSERT(!(r4 <  r6));
		TS_ASSERT(!(r4 <= r6));

		TS_ASSERT(  r4 >  7);
		TS_ASSERT(  r4 >= 7);
		TS_ASSERT(!(r4 <  7));
		TS_ASSERT(!(r4 <= 7));

		TS_ASSERT(  7 <  r4);
		TS_ASSERT(  7 <= r4);
		TS_ASSERT(!(7 >  r4));
		TS_ASSERT(!(7 >= r4));
	}
};