#!/usr/bin/ruby
#
## Test Array#sum and Array#prod
#
var a = [1,2,3,4,5]
assert_eq(a.prod, 120)
assert_eq(a.sum, 15)
assert_eq(a.sum { _*_ }, 55)
assert_eq(a.prod { _*_ }, 14400)
# This may change in the future
assert_eq(a.sum(42), 57)
assert_eq(a.prod(2), 240)
# Empty array
assert_eq([].sum, 0)
assert_eq([].prod, 1)
#
## Test RangeNumber#sum and RangeNumber#prod
#
var r = 1..5
assert_eq(r.prod, 120)
assert_eq(r.sum, 15)
assert_eq(r.sum { _*_ }, 55)
assert_eq(r.prod { _*_ }, 14400)
# This may change in the future
assert_eq(r.sum(42), 57)
assert_eq(r.prod(2), 240)
# Empty range
assert_eq((5..4).sum, 0)
assert_eq((5..4).prod, 1)
say "** Test passed!"