function generate_tests(func, args, properties) {
        forEach(args, function(x, i)
                {
                    var name = x[0];
                    test(function()
                         {
                             func.apply(this, x.slice(1));
                         },
                         name,
                         Array.isArray(properties) ? properties[i] : properties);
                });
    }
@deprecated generate a list of tests from a function and list of arguments

This is deprecated because it runs all the tests outside of the test functions
and as a result any test throwing an exception will result in no tests being
run. In almost all cases, you should simply call test within the loop you would
use to generate the parameter list array.

@param {Function} func - The function that will be called for each generated tests.
@param {Any[][]} args - An array of arrays. Each nested array
has the structure `[testName, ...testArgs]`. For each of these nested arrays
array, a test is generated with name `testName` and test function equivalent to
`func(..testArgs)`.