ruby - 如何从数组成员的角度在 ruby​​ 中表达数组中的关系?

标签 ruby arrays testing fibonacci

在 ruby​​ 中,如何声明数组中与其成员之一相关的位置?我正在尝试为 Fibonnaci 序列编写测试,其条款限制为四百万,并且我的规范如下:

it 'creates an array of numbers with each member evaluating as the sum of the two previous members' do
  expect(fibonacci.each {|member| member == two_positions_back_from_member + one_position_back_from_member}).to eq(true)
end

我知道您可以使用 array[4] 来确定数组的位置。有谁知道是否有办法对其成员执行此操作?

最佳答案

您当然可以找到数组中的成员,它为您提供了数组中的索引,您可以从中减去以获得相对位置。在你的例子中:

i = fibonacci.index(member); fibonacci[i-2] + fibonacci[i-1]

也就是说,您无法像这样测试斐波那契数列,因为它是一个数列。因为它是无限的,所以需要永远。当然,除非您的 fibonacci 只是一个摘录。

此外,each 将返回 fibonacci,因此 expect 这个 .to be(true) 可能是不是你想要的。尝试使用 map 而不是 each 然后 expect .to eq(fibonacci)

关于ruby - 如何从数组成员的角度在 ruby​​ 中表达数组中的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25327652/

相关文章:

ruby - 对于 Ruby bool 值,如果没有相等语句,您要检查什么?

python - 有没有一种快速的方法可以将 numpy 数组中的一个元素与该数组中的其余元素进行比较?

java - 比较数组之间的相似性

angularjs - 按值单击元素 - Protractor

c# - 如何测试 Entity Framework 中随时间发生的查询数量?

ruby-on-rails - 神秘的类型错误:没有为 OpenSSL::Digest 类定义 _dump_data

ruby-on-rails - rails 3 : Migrating a model to MongoDB

ruby - 干净地将 {"key"=> ["val1", "val2"]} 哈希转换为 {"key"=> "val1", "key"=> "val2"} 在 Ruby/Rails 中的哈希

c - 有关C语言中数组的概念(基本)问题

javascript - 在JavaScript中命名函数参数窗口是否可以?