如何按升序排列值列表?

时间:2017-05-31 07:10:18

标签: ruby rspec

以下是数组中的值列表:

[463, 246, 216, 194, 154, 152, 147, 140, 129, 128, 123, 118, 118, 102, 102, 101, 97, 96, 93, 85]

如何通过RSpec确保/断言数组列表是按升序排列的?

2 个答案:

答案 0 :(得分:6)

最简单的方法可能是:

expect(array.sort).to eq(array)

答案 1 :(得分:1)

"升序"意味着"下一个元素不小于当前"。您可以轻松地将其编码为谓词:

expect(array.each_cons(2).all? {|a, b| a <= b }).to be_truthy

请注意,Array#sort 稳定,所以

expect(array.sort).to eq(array)

不起作用