switch-002.js   [plain text]


/**
 *  File Name:          switch-002.js
 *  ECMA Section:
 *  Description:        The switch Statement
 *
 *  A simple switch test with no abrupt completions.
 *
 *  Author:             christine@netscape.com
 *  Date:               11 August 1998
 *
 */
    var SECTION = "switch-002";
    var VERSION = "ECMA_2";
    var TITLE   = "The switch statement";

    startTest();
    writeHeaderToLog( SECTION + " "+ TITLE);

    var tc = 0;
    var testcases = new Array();

    SwitchTest( 0, 6 );
    SwitchTest( 1, 4 );
    SwitchTest( 2, 56 );
    SwitchTest( 3, 48 );
    SwitchTest( 4, 64 );
    SwitchTest( true, 32 );
    SwitchTest( false, 32 );
    SwitchTest( null, 32 );
    SwitchTest( void 0, 32 );
    SwitchTest( "0", 32 );

    test();

    function SwitchTest( input, expect ) {
        var result = 0;

        switch ( input ) {
            case 0:
                result += 2;
            case 1:
                result += 4;
                break;
            case 2:
                result += 8;
            case 3:
                result += 16;
            default:
                result += 32;
                break;
            case 4:
                result += 64;
        }

        testcases[tc++] = new TestCase(
            SECTION,
            "switch with no breaks:  input is " + input,
            expect,
            result );
    }