在测试环境中,我需要采用特定百分比的数组元素。
我的请求的规范可以在此测试中描述:
def test_percent_elements
array = [1,2,3,4,5,6,7,8,9,10]
assert_equal([], array.percent_elements(0))
assert_equal([1], array.percent_elements(1))
assert_equal([1], array.percent_elements(10))
assert_equal([1,2], array.percent_elements(11))
assert_equal([1,2,3,4,5], array.percent_elements(50))
assert_equal([1,2,3,4,5,6,7,8,9,10], array.percent_elements(100))
end
哪种方法可以在Ruby中解决这个问题?
答案 0 :(得分:6)
我写道:
class Array
def percent_elements(percent)
take((size * percent / 100.0).ceil)
end
end
答案 1 :(得分:0)
我的实际做法是:
class Array
def percent_elements(percent)
total = self.length
elements = ((total * percent) / 100.to_f).ceil
self[0, elements]
end
end