diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-01-31 03:34:21 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-01-31 03:34:21 +0000 |
commit | fe5757f3741f51484bf4c269056ab5d5aba04b46 (patch) | |
tree | dc8d0b3bf68d79395e164afff053c868932d53a8 /test/drb/ut_large.rb | |
parent | 6c84081d4f83a60853a29a89eff8a980cfbd1d21 (diff) | |
download | ruby-fe5757f3741f51484bf4c269056ab5d5aba04b46.tar.gz |
additional math operations
* test/drb/ut_large.rb (multiply, avg, median): add additional
math operations to DRbLarge. [Fix GH-1086]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/drb/ut_large.rb')
-rw-r--r-- | test/drb/ut_large.rb | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/test/drb/ut_large.rb b/test/drb/ut_large.rb index c00279e7cb..9376ff119d 100644 --- a/test/drb/ut_large.rb +++ b/test/drb/ut_large.rb @@ -13,11 +13,29 @@ class DRbLarge end def sum(ary) - sum = 0 - ary.each do |e| - sum += e.to_i + ary.inject(:+) + end + + def multiply(ary) + ary.inject(:*) + end + + def avg(ary) + return if ary.empty? + if ary.any? {|n| n.is_a? String} + raise TypeError + else + sum(ary).to_f / ary.count + end + end + + def median(ary) + return if ary.empty? + if ary.any? {|n| n.is_a? String} + raise TypeError + else + avg ary.sort[((ary.length - 1) / 2)..(ary.length / 2)] end - sum end def arg_test(*arg) |