title: Does 'array.map' preserve the original order?
body: <p>I have a <code>User</code> class that <code>has_many</code> <code>Job</code>s. I map jobs with the following code:</p>
  
  <pre><code>def ranges
    user.jobs.map { |u| [u.start_at, u.end_at] }
  end
  </code></pre>
  
  <p>I have a spec that compares two arrays:</p>
  
  <pre><code>my_array = [[start1, end1], [start2, end2]]
  expect(ranges).to eq my_array
  </code></pre>
  
  <p>It passes on local, but not on Bamboo build. I had to change it to pass the build. I still don't understand why it behaves like this. I expect some random pattern even if map doesn't preserve the order.</p>
  
  <p>Why does this pass on my local, but fails in Bamboo build?</p>