18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  File Name:          switch-002.js
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  ECMA Section:
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  Description:        The switch Statement
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  A simple switch test with no abrupt completions.
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  Author:             christine@netscape.com
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  Date:               11 August 1998
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    var SECTION = "switch-002";
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    var VERSION = "ECMA_2";
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    var TITLE   = "The switch statement";
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    startTest();
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    writeHeaderToLog( SECTION + " "+ TITLE);
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    var tc = 0;
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    var testcases = new Array();
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( 0, 6 );
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( 1, 4 );
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( 2, 56 );
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( 3, 48 );
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( 4, 64 );
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( true, 32 );
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( false, 32 );
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( null, 32 );
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( void 0, 32 );
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( "0", 32 );
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    test();
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    function SwitchTest( input, expect ) {
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        var result = 0;
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        switch ( input ) {
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case 0:
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                result += 2;
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case 1:
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                result += 4;
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                break;
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case 2:
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                result += 8;
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case 3:
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                result += 16;
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            default:
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                result += 32;
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                break;
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case 4:
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                result += 64;
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        }
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        testcases[tc++] = new TestCase(
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            SECTION,
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            "switch with no breaks:  input is " + input,
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            expect,
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            result );
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    }
61