module ArraySpec
class Splat
def unpack_3args(a, b, c)
[a, b, c]
end
def unpack_4args(a, b, c, d)
[a, b, c, d]
class SideEffect
def initialize()
@call_count = 0
attr_reader :call_count
def array_result(a_number)
[result(a_number), result(a_number)]
def result(a_number)
@call_count += 1
if a_number
1
else
:thing