Fix 'make_assertion' to handle table with holes

make_assertion was using `#{...}` to find the number of arguments.
Changed to use 'select('#',...)' to be more predictable.