18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  File Name:          switch-001.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-001";
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    var BUGNUMBER="315767";
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    startTest();
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    writeHeaderToLog( SECTION + " "+ TITLE);
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    var tc = 0;
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    var testcases = new Array();
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( 0, 126 );
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( 1, 124 );
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( 2, 120 );
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( 3, 112 );
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( 4, 64 );
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( 5, 96 );
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( true, 96 );
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( false, 96 );
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( null, 96 );
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( void 0, 96 );
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( "0", 96 );
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    test();
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    function SwitchTest( input, expect ) {
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        var result = 0;
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        switch ( input ) {
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case 0:
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                result += 2;
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case 1:
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                result += 4;
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case 2:
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                result += 8;
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case 3:
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                result += 16;
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            default:
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                result += 32;
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case 4:
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                result +=64;
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        }
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        testcases[tc++] = new TestCase(
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            SECTION,
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            "switch with no breaks, case expressions are numbers.  input is "+
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            input,
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            expect,
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            result );
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    }
65