summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-rational/test/rational.rb
diff options
context:
space:
mode:
authorUkrainskiy Sergey <[email protected]>2018-09-09 11:57:16 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2019-05-15 16:57:21 +0900
commitd67d2ae8e88b93536e71dfa41a90721ce351da7c (patch)
tree25b8e534e0864817bf05dee8022004fa04e22fc7 /mrbgems/mruby-rational/test/rational.rb
parent79c3335e8d22ec76340b3028a7bbc658d631b17c (diff)
downloadmruby-d67d2ae8e88b93536e71dfa41a90721ce351da7c.tar.gz
mruby-d67d2ae8e88b93536e71dfa41a90721ce351da7c.zip
Basic implementation of Complex and Rational classes
Diffstat (limited to 'mrbgems/mruby-rational/test/rational.rb')
-rw-r--r--mrbgems/mruby-rational/test/rational.rb41
1 files changed, 40 insertions, 1 deletions
diff --git a/mrbgems/mruby-rational/test/rational.rb b/mrbgems/mruby-rational/test/rational.rb
index 6f20a6cd4..a86f00690 100644
--- a/mrbgems/mruby-rational/test/rational.rb
+++ b/mrbgems/mruby-rational/test/rational.rb
@@ -1,3 +1,42 @@
+def assert_rational(real, exp)
+ assert_float real.numerator, exp.numerator
+ assert_float real.denominator, exp.denominator
+end
+
assert 'Rational' do
- assert_equal Rational, 0r.class
+ r = 5r
+ assert_equal Rational, r.class
+ assert_equal [r.numerator, r.denominator], [5, 1]
+end
+
+assert 'Rational#*' do
+ assert_rational Rational(2, 3) * Rational(2, 3), Rational(4, 9)
+ assert_rational Rational(900) * Rational(1), Rational(900, 1)
+ assert_rational Rational(-2, 9) * Rational(-9, 2), Rational(1, 1)
+ assert_rational Rational(9, 8) * 4, Rational(9, 2)
+ assert_float Rational(20, 9) * 9.8, 21.77777777777778
+end
+
+assert 'Rational#+' do
+ assert_rational Rational(2, 3) + Rational(2, 3), Rational(4, 3)
+ assert_rational Rational(900) + Rational(1), Rational(901, 1)
+ assert_rational Rational(-2, 9) + Rational(-9, 2), Rational(-85, 18)
+ assert_rational Rational(9, 8) + 4, Rational(41, 8)
+ assert_float Rational(20, 9) + 9.8, 12.022222222222222
+end
+
+assert 'Rational#-' do
+ assert_rational Rational(2, 3) - Rational(2, 3), Rational(0, 1)
+ assert_rational Rational(900) - Rational(1), Rational(899, 1)
+ assert_rational Rational(-2, 9) - Rational(-9, 2), Rational(77, 18)
+ assert_rational Rational(9, 8) - 4, Rational(-23, 8)
+ assert_float Rational(20, 9) - 9.8, -7.577777777777778
+end
+
+assert 'Rational#/' do
+ assert_rational Rational(2, 3) / Rational(2, 3), Rational(1, 1)
+ assert_rational Rational(900) / Rational(1), Rational(900, 1)
+ assert_rational Rational(-2, 9) / Rational(-9, 2), Rational(4, 81)
+ assert_rational Rational(9, 8) / 4, Rational(9, 32)
+ assert_float Rational(20, 9) / 9.8, 0.22675736961451246
end \ No newline at end of file