I know that I wrote this, but it seems weird to me now. Do you think we could do something like the following, instead?

```coffeescript
test.input = (fn) ->
  @queue.push [fn]

test.output = (num, fn) ->
  @queue.push [fn, num]
```

Then, later:

```coffeescript
while arr = @queue.shift()
  switch arr.length
    when 1  # input
      [fn] = arr
      input?()
      input = fn
    when 2  # output
      [fn, num] = arr
      actual = try input() catch error then error.constructor
      expected = fn()
      results.push [_.isEqual(actual, expected), q(expected), q(actual), num]
      input = null
```