r18455 reverted.
[ruby-svn.git] / benchmark / bm_so_lists.rb
blob36522888816237152a24e72c32c9586899fc55bc
1 #from http://www.bagley.org/~doug/shootout/bench/lists/lists.ruby
3 NUM = 100
4 SIZE = 10000
6 def test_lists()
7   # create a list of integers (Li1) from 1 to SIZE
8   li1 = (1..SIZE).to_a
9   # copy the list to li2 (not by individual items)
10   li2 = li1.dup
11   # remove each individual item from left side of li2 and
12   # append to right side of li3 (preserving order)
13   li3 = Array.new
14   while (not li2.empty?)
15     li3.push(li2.shift)
16   end
17   # li2 must now be empty
18   # remove each individual item from right side of li3 and
19   # append to right side of li2 (reversing list)
20   while (not li3.empty?)
21     li2.push(li3.pop)
22   end
23   # li3 must now be empty
24   # reverse li1 in place
25   li1.reverse!
26   # check that first item is now SIZE
27   if li1[0] != SIZE then
28     p "not SIZE"
29     0
30   else
31     # compare li1 and li2 for equality
32     if li1 != li2 then
33       return(0)
34     else
35       # return the length of the list
36       li1.length
37     end
38   end
39 end
41 i = 0
42 while i<NUM
43   i+=1
44   result = test_lists()
45 end
47 result