return new UnitTest('length & capacity', function() { return 'length' in Array.prototype; })
    .add('empty literal', function() { return [].length === 0 })
    .add('filled literal', function() { return [1, 2, 3].length === 3 })
    .add('set length', function() {
        var a = [];
        a.length = 10;
        return a.length === 10;
    })
    .add('length after set', function() {
        var a = [];
        a [5]= 5;
        return a.length === 6;
    })
    .add('length after set (big', function() {
        var a = [1, 2];
        a [5000]= 5;
        return a.length === 5001;
    })
    .add('expand test', function() {
        var a = [];
        for (var i = 0; i < 1000; i++) {
            a[i] = i * 50;
            if (a[i] !== i * 50) return false;
        }
        return a.length === 1000;
    })