test/BTree_spec.rb in perobs-3.0.2 vs test/BTree_spec.rb in perobs-4.0.0

- old
+ new

@@ -123,6 +123,51 @@ expect(@m.remove(i)).to eql(i * 100) expect(@m.check).to be true end end + it 'should survive a real-world usage test' do + @m.clear + ref = {} + 0.upto(50000) do + case rand(5) + when 0 + 0.upto(2) do + key = rand(100000) + value = rand(10000000) + @m.insert(key, value) + ref[key] = value + end + when 1 + if ref.length > 0 + key = ref.keys[rand(ref.keys.length)] + expect(@m.remove(key)).to eql(ref[key]) + ref.delete(key) + end + when 2 + if ref.length > 0 + 0.upto(3) do + key = ref.keys[rand(ref.keys.length)] + expect(@m.get(key)).to eql(ref[key]) + end + end + when 3 + if ref.length > 0 + key = ref.keys[rand(ref.keys.length)] + value = rand(10000000) + @m.insert(key, value) + ref[key] = value + end + when 4 + if rand(50) == 0 + expect(@m.check).to be true + end + when 5 + if rand(50) == 0 + @m.close + @m.open + end + end + end + end + end