 This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.

Accepting or Passing a Variable Number of Arguments
CodeExpectedActual
```def sum(*numbers)
puts "I'm about to sum the array #{numbers.inspect}"
numbers.inject(0) { |sum, x| sum += x }
end
sum(1, 2, 10)              ```
`I'm about to sum the array [1, 2, 10]`
`I'm about to sum the array [1, 2, 10]`
`sum(2, -2, 2, -2, 2, -2, 2, -2, 2)`
`I'm about to sum the array [2, -2, 2, -2, 2, -2, 2, -2, 2]`
`I'm about to sum the array [2, -2, 2, -2, 2, -2, 2, -2, 2]`
`sum  `
`I'm about to sum the array []`
`I'm about to sum the array []`
```to_sum = []
1.upto(10) { |x| to_sum << x }
sum(*to_sum)```
`I'm about to sum the array [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`
`I'm about to sum the array [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`
`sum(to_sum)`
```I'm about to sum the array [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
TypeError: Array can't be coerced into Fixnum
...```
```I'm about to sum the array [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
TypeError: Array can't be coerced into Fixnum
from (irb):3:in `+'
from (irb):3:in `sum'
from (irb):11:in `inject'
from (irb):3:in `sum'
from (irb):11
```
`printf('%s | %s', 'left', 'right')`
`left | right`
`left | right`
```inputs = ['left', 'right']
printf('%s | %s', *inputs) ```
`left | right`
`left | right`
```def format_list(header, footer='', *data)
puts (line = '-' * header.size)
puts data.join("\n")
puts line
puts footer
end
cozies = 21
format_list("Yesterday's productivity numbers:", 'Congratulations!',
```Yesterday's productivity numbers:
---------------------------------
21 slime mold cozies
```Yesterday's productivity numbers:
```ranges = [[1, 10], [1, 6, true], [25, 100, false], [6, 9]]