Esempio n. 1
0
    public static int Main( String[] argv )    {
	
        StringVersionClass Me = new StringVersionClass();
	int ret = -1;
	int i;
	String Stemp = null;

	// Set up Results report
	for ( i = 0; i < MAX_TEST; i++ )
	    Me.result[i] = false;

	//Proceed to tests
	for ( i = 0; i < MAX_TEST; i++ ) {
	    switch (i) {
		//Null arg
		case   0 : break;

		//Argument exceptions
		//  Invalid separators
		case   1 : Stemp = "99.99,99.99,99.99,99.99";
		           break;

		// Incorrect separator
		case   2 : Stemp = "9,9,9,9";
			   break;

		// Incorrect use of grouping char
		case   3 : Stemp = "9,999. 9,999. 9,999. 9,999 ";
			   break;

		// Invalid chars
		case   4 : Stemp = "#999.#9999.#9999.#9999";
			   break;

		case   5 : Stemp = "CLR.CLR.CLR.CLR";
			   break;

		case   6 : Stemp = "1/2.1/2.1.1";
			   break;

		case   7 : Stemp = "###.###.###.###";
			   break;


		case   8 : Stemp = "%1.2.3.4";
			   break;

		case   9 : Stemp = "1.2.3.4 %";
			   break;

		case  10 : Stemp = "1.2.3.4%";
			   break;

		case  11 : Stemp = "1%.2.3.4";
			   break;

		case  12 : Stemp = "1.2%.3.4";
			   break;

		case  13 : Stemp = "1.2.%3.4";
			   break;

		case  14 : Stemp = "@1.2.3.4";
			   break;

		case  15 : Stemp = "1.2.3.4 @";
			   break;

		case  16 : Stemp = "1.2.3.4@";
			   break;

		case  17 : Stemp = "[email protected]";
			   break;

		case  18 : Stemp = "[email protected]";
			   break;

		case  19 : Stemp = "[email protected]";
			   break;

		case  20 : Stemp = "!1.2.3.4";
			   break;

		case  21 : Stemp = "1.2.3.4 !";
			   break;

		case  22 : Stemp = "1.2.3.4!";
			   break;

		case  23 : Stemp = "1!.2.3.4";
			   break;

		case  24 : Stemp = "1.2!.3.4";
			   break;

		case  25 : Stemp = "1.2.!3.4";
			   break;

		case  26 : Stemp = "1-.2.3.4";
			   break;

		case  27 : Stemp = "1.2.3.4 -";
			   break;
		case  28 : Stemp = "1.2.3.4-";
			   break;
		case  29 : Stemp = "1.2-.3.4";
			   break;
		case  30 : Stemp = "1.2.3-.4";
			   break;
		case  31 : Stemp = "1.2.3+.4";
			   break;
		case  32 : Stemp = "1.2.3.4 +";
			   break;
		case  33 : Stemp = "1.2.3.4+";
			   break;
		case  34 : Stemp = "1+.2.3.4";
			   break;
		case  35 : Stemp = "1.2+.3.4";
			   break;
		case  36 : Stemp = "1.2.3.4++";
			   break;
		case  37 : Stemp = "=1.2.3.4";
			   break;
		case  38 : Stemp = "1.2.3.4 =";
			   break;
		case  39 : Stemp = "1=.2.3.4";
			   break;
		case  40 : Stemp = "1.2=.3.4";
			   break;
		case  41 : Stemp = "1.2.=3.4";
			   break;
		case  42 : Stemp = "*1.2.3.4";
			   break;
		case  43 : Stemp = "1.2.3.4 *";
			   break;
		case  44 : Stemp = "1.2.3.4*";
			   break;
		case  45 : Stemp = "1*.2.3.4";
			   break;
		case  46 : Stemp = "1.2*.3.4";
			   break;
		case  47 : Stemp = "1.2.*3.4";
			   break;
		case  48 : Stemp = "&1.2.3.4";
			   break;
		case  49 : Stemp = "1.2.3.4 &";
			   break;
		case  50 : Stemp = "1&.2.3.4";
			   break;
		case  51 : Stemp = "1.2&.3.4";
			   break;
		case  52 : Stemp = "1.2.&3.4";
			   break;
		case  53 : Stemp = "|1.2.3.4";
			   break;
		case  54 : Stemp = "1.2.3.4 |";
			   break;
		case  55 : Stemp = "1.2.3.4|";
			   break;
		case  56 : Stemp = "1|.2.3.4";
			   break;
		case  57 : Stemp = "1.2|.3.4";
			   break;
		case  58 : Stemp = "1.2.|3.4";
			   break;
		case  59 : Stemp = "\\1.2.3.4";
			   break;
		case  60 : Stemp = "1.2.3.4 \\";
			   break;
		case  61 : Stemp = "1.2.3.4\\";
			   break;
		case  62 : Stemp = "1\\.2.3.4";
			   break;
		case  63 : Stemp = "1.2\\.3.4";
			   break;
		case  64 : Stemp = "1.2.\\3.4";
			   break;
		case  65 : Stemp = ":1.2.3.4";
			   break;
		case  66 : Stemp = "1.2.3.4 :";
			   break;
		case  67 : Stemp = "1.2.3.4:";
			   break;
		case  68 : Stemp = "1:.2.3.4";
			   break;
		case  69 : Stemp = "1.:2.3.4";
			   break;
		case  70 : Stemp = "1.2.3:.4";
			   break;
		case  71 : Stemp = ";1.2.3.4";
			   break;
		case  72 : Stemp = "1.2.3.4;";
			   break;
		case  73 : Stemp = "1;.2.3.4";
			   break;
		case  74 : Stemp = "1.2;.;3.4";
			   break;
		case  75 : Stemp = "1.2.;3.4";
			   break;
		case  76 : Stemp = "\"1.2.3.4";
			   break;
		case  77 : Stemp = "1.2.3.4\"";
			   break;
		case  78 : Stemp = "1\".2.3.4";
			   break;
		case  79 : Stemp = "1.2\".3.4";
			   break;
		case  80 : Stemp = "1.2.\"3.4";
			   break;
		case  81 : Stemp = "\'1.2.3.4";
			   break;
		case  82 : Stemp = "1.2.3.4\'";
			   break;
		case  83 : Stemp = "1\'.2.3.4";
			   break;
		case  84 : Stemp = "1.2\'.3.4";
			   break;
		case  85 : Stemp = "1.2.\'3.4";
			   break;
		case  86 : Stemp = "f1.2.3.4";
			   break;
		case  87 : Stemp = "1.2.3.4f";
			   break;
		case  88 : Stemp = "1.f2.3.4";
			   break;
		case  89 : Stemp = "1.2.f3.4";
			   break;

		// Out of range
		case  90 : Stemp = "-1.2.3.4";
			   break;
		case  91 : Stemp = "1.-2.3.4";
			   break;
		case  92 : Stemp = "1.2.-3.4";
			   break;
		case  93 : Stemp = "1.2.3.-4";
			   break;
		case  94 : Stemp = "-1000000.-1000000.-1000000.-1000000";
			   break;
		case  95 : Stemp = "1000000.-1000000.-1000000.-1000000";
			   break;
		case  96 : Stemp = "1000000.1000000.-1000000.-1000000";
			   break;
		case  97 : Stemp = "1000000.1000000.1000000.-1000000";
			   break;
		case  98 : Stemp = "1000000.-1000000.1000000.1000000";
			   break;
		case  99 : Stemp = "1000000.1000000.-1000000.1000000";
			   break;

		//Skip this one = generate no error
		case 100 : Stemp = "10000.20000.30000.40000";
			   Me.result[i] = true;
			   break;

		//Unicode chars

		//Chinese
		case 101 :Stemp = "ق1.2.3.4";
			   break;
		case 102 :Stemp = "1.ق2.3.4";
			   break;
		case 103 :Stemp = "1.2.3ق.4";
			   break;
		case 104 :Stemp = "1.2.3.4ق";
			   break;
		case 105 :Stemp = "1.2.3.4 ق";
			   break;
		case 106 :Stemp = "1.ق2ق.3.4";
			   break;

		case 107 :Stemp = "ش1.2.3.4";
			   break;
		case 108 :Stemp = "1.ش2.3.4";
			   break;
		case 109 :Stemp = "1.2.3ش.4";
			   break;
		case 110 :Stemp = "1.2.3.4ش";
			   break;
		case 111 :Stemp = "1.2.3.4 ش";
			   break;
		case 112 :Stemp = "1.ش2ش.3.4";
			   break;

		case 113 :Stemp = "ش1.2.3.4";
			   break;
		case 114 :Stemp = "1.ش2.3.4";
			   break;
		case 115 :Stemp = "1.2.3ش.4";
			   break;
		case 116 :Stemp = "1.2.3.4ش";
			   break;
		case 117 :Stemp = "1.2.3.4 ش";
			   break;
		case 118 :Stemp = "1.ش2ش.3.4";
			   break;

		case 119 :Stemp = "ل1.2.3.4";
			   break;
		case 120 :Stemp = "1.ل2.3.4";
			   break;
		case 121 :Stemp = "1.2.3ل.4";
			   break;
		case 122 :Stemp = "1.2.3.4ل";
			   break;
		case 123 :Stemp = "1.2.3.4 ل";
			   break;
		case 124 :Stemp = "1.لل.3.4";
			   break;

		case 125 :Stemp = "ؤ1.2.3.4";
			   break;
		case 126 :Stemp = "1.ؤ2.3.4";
			   break;
		case 127 :Stemp = "1.2.3ؤ.4";
			   break;
		case 128 :Stemp = "1.2.3.4ؤ";
			   break;
		case 129 :Stemp = "1.2.3.4 ؤ";
			   break;
		case 130 :Stemp = "1.ؤؤ.3.4";
			   break;

		//Japanese
		case 131 :Stemp = "प1.2.3.4";
			   break;
		case 132 :Stemp = "1.प2.3.4";
			   break;
		case 133 :Stemp = "1.2.3प.4";
			   break;
		case 134 :Stemp = "1.2.3.4प";
			   break;
		case 135 :Stemp = "1.2.3.4 प";
			   break;
		case 136 :Stemp = "1.पप.3.4";
			   break;

		case 137 :Stemp = "ग1.2.3.4";
			   break;
		case 138 :Stemp = "1.ग2.3.4";
			   break;
		case 139 :Stemp = "1.2.3ग.4";
			   break;
		case 140 :Stemp = "1.2.3.4ग";
			   break;
		case 141 :Stemp = "1.2.3.4 ग";
			   break;
		case 142 :Stemp = "1.गग.3.4";
			   break;

		case 143 :Stemp = "ल1.2.3.4";
			   break;
		case 144 :Stemp = "1.ल2.3.4";
			   break;
		case 145 :Stemp = "1.2.3ल.4";
			   break;
		case 146 :Stemp = "1.2.3.4ल";
			   break;
		case 147 :Stemp = "1.2.3.4 ल";
			   break;
		case 148 :Stemp = "1.लल.3.4";
			   break;

		case 149 :Stemp = "्1.2.3.4";
			   break;
		case 150 :Stemp = "1.्2.3.4";
			   break;
		case 151 :Stemp = "1.2.3्.4";
			   break;
		case 152 :Stemp = "1.2.3.4्";
			   break;
		case 153 :Stemp = "1.2.3.4 ्";
			   break;
		case 154 :Stemp = "1.््.3.4";
			   break;

		// Russian
		case 155 :Stemp = "К1.2.3.4";
			   break;
		case 156 :Stemp = "1.К2.3.4";
			   break;
		case 157 :Stemp = "1.2.3К.4";
			   break;
		case 158 :Stemp = "1.2.3.4К";
			   break;
		case 159 :Stemp = "1.2.3.4 К";
			   break;
		case 160 :Stemp = "1.КК.3.4";
			   break;

		case 161 :Stemp = "г1.2.3.4";
			   break;
		case 162 :Stemp = "1.г2.3.4";
			   break;
		case 163 :Stemp = "1.2.3г.4";
			   break;
		case 164 :Stemp = "1.2.3.4г";
			   break;
		case 165 :Stemp = "1.2.3.4 г";
			   break;
		case 166 :Stemp = "1.г.3.4";
			   break;

		case 167 :Stemp = "ы1.2.3.4";
			   break;
		case 168 :Stemp = "1.ы2.3.4";
			   break;
		case 169 :Stemp = "1.2.3ы.4";
			   break;
		case 170 :Stemp = "1.2.3.4ы";
			   break;
		case 171 :Stemp = "1.2.3.4 ы";
			   break;
		case 172 :Stemp = "1.ыы.3.4";
			   break;

		case 173 :Stemp = "ш1.2.3.4";
			   break;
		case 174 :Stemp = "1.ш2.3.4";
			   break;
		case 175 :Stemp = "1.2.3ш.4";
			   break;
		case 176 :Stemp = "1.2.3.4ш";
			   break;
		case 177 :Stemp = "1.2.3.4 ш";
			   break;
		case 178 :Stemp = "1.шш.3.4";
			   break;


/**/
	    } //end switch

	    try {
		Me.testor[i] = new Version( Stemp );
	    } catch ( FormatException e ) {
		if ( ( i > MAX_ARG ) && ( i <= MAX_FORMAT ) ) {
		    Me.result[ i ] = true;
		    //Console.WriteLine( "Exception for " + i + ": " + e.ToString() );
		} else if ( ( i > 100 ) && ( i <= MAX_UNICODE ) ) {
		    Me.result[ i ] = true;
		    //Console.WriteLine( "Exception for " + i + ": " + e.ToString() );
		} else {
		    Console.WriteLine( "Wrong Exception for " + i + ": " + e.ToString() );
		    Console.WriteLine( "Should be FormatException." );
		}
	    } catch ( ArgumentNullException e0 ) {
		if ( i == 0 ) {
		    Me.result[ i ] = true;
		    //Console.WriteLine( "Exception for " + i + ": " + e0.ToString() );
		} else {
		    Console.WriteLine( "Wrong Exception for " + i + ": " + e0.ToString() );
		    Console.WriteLine( "Should be ArgumentNullException." );
		}
	    } catch ( ArgumentOutOfRangeException e2 ) {
		if ( ( i >= MAX_FORMAT ) && ( i <= MAX_RANGE ) ) {
		    Me.result[ i ] = true;
		    //Console.WriteLine( "Exception for " + i + ": " + e2.ToString() );
		} else {
		    Console.WriteLine( "Wrong Exception for " + i + ": " + e2.ToString() );
		    Console.WriteLine( "Should be ArgumentOutOfRangeException." );
		}
	    } catch ( ArgumentException e1 ) {
		if ( i <= MAX_ARG ) {
		    Me.result[ i ] = true;
		    //Console.WriteLine( "Exception for " + i + ": " + e1.ToString() );
		} else {
		    Console.WriteLine( "Wrong Exception for " + i + ": " + e1.ToString() );
		    Console.WriteLine( "Should be ArgumentNullException." );
		}
	    } catch ( Exception e ) {
		Console.WriteLine( "Wrong Exception for " + i + ": " + e.ToString() );
		Console.WriteLine( "Should be ArgumentNullException." );
	    }
	}

	// Compile results for return value
	for ( i = 0; i < MAX_TEST; i++ ) {
	    if ( !Me.result[i] ) {
		ret = i;
	        Console.WriteLine( "Error for #" + i + " - Version is: " + Me.testor[i].ToString() );
	    }
	}
	if ( ret < 0 )
	    ret = 100;

	if ( ret == 100 ) 
	    Console.WriteLine( "Success!" );
	else
	    Console.WriteLine( "FAILED TEST!" );

	return ret;
    }
    public static int Main(String[] argv)
    {
        StringVersionClass Me = new StringVersionClass();
        int    ret            = -1;
        int    i;
        String Stemp = null;

        // Set up Results report
        for (i = 0; i < MAX_TEST; i++)
        {
            Me.result[i] = false;
        }

        //Proceed to tests
        for (i = 0; i < MAX_TEST; i++)
        {
            switch (i)
            {
            //Null arg
            case   0: break;

            //Argument exceptions
            //  Invalid separators
            case   1: Stemp = "99.99,99.99,99.99,99.99";
                break;

            // Incorrect separator
            case   2: Stemp = "9,9,9,9";
                break;

            // Incorrect use of grouping char
            case   3: Stemp = "9,999. 9,999. 9,999. 9,999 ";
                break;

            // Invalid chars
            case   4: Stemp = "#999.#9999.#9999.#9999";
                break;

            case   5: Stemp = "CLR.CLR.CLR.CLR";
                break;

            case   6: Stemp = "1/2.1/2.1.1";
                break;

            case   7: Stemp = "###.###.###.###";
                break;


            case   8: Stemp = "%1.2.3.4";
                break;

            case   9: Stemp = "1.2.3.4 %";
                break;

            case  10: Stemp = "1.2.3.4%";
                break;

            case  11: Stemp = "1%.2.3.4";
                break;

            case  12: Stemp = "1.2%.3.4";
                break;

            case  13: Stemp = "1.2.%3.4";
                break;

            case  14: Stemp = "@1.2.3.4";
                break;

            case  15: Stemp = "1.2.3.4 @";
                break;

            case  16: Stemp = "1.2.3.4@";
                break;

            case  17: Stemp = "[email protected]";
                break;

            case  18: Stemp = "[email protected]";
                break;

            case  19: Stemp = "[email protected]";
                break;

            case  20: Stemp = "!1.2.3.4";
                break;

            case  21: Stemp = "1.2.3.4 !";
                break;

            case  22: Stemp = "1.2.3.4!";
                break;

            case  23: Stemp = "1!.2.3.4";
                break;

            case  24: Stemp = "1.2!.3.4";
                break;

            case  25: Stemp = "1.2.!3.4";
                break;

            case  26: Stemp = "1-.2.3.4";
                break;

            case  27: Stemp = "1.2.3.4 -";
                break;

            case  28: Stemp = "1.2.3.4-";
                break;

            case  29: Stemp = "1.2-.3.4";
                break;

            case  30: Stemp = "1.2.3-.4";
                break;

            case  31: Stemp = "1.2.3+.4";
                break;

            case  32: Stemp = "1.2.3.4 +";
                break;

            case  33: Stemp = "1.2.3.4+";
                break;

            case  34: Stemp = "1+.2.3.4";
                break;

            case  35: Stemp = "1.2+.3.4";
                break;

            case  36: Stemp = "1.2.3.4++";
                break;

            case  37: Stemp = "=1.2.3.4";
                break;

            case  38: Stemp = "1.2.3.4 =";
                break;

            case  39: Stemp = "1=.2.3.4";
                break;

            case  40: Stemp = "1.2=.3.4";
                break;

            case  41: Stemp = "1.2.=3.4";
                break;

            case  42: Stemp = "*1.2.3.4";
                break;

            case  43: Stemp = "1.2.3.4 *";
                break;

            case  44: Stemp = "1.2.3.4*";
                break;

            case  45: Stemp = "1*.2.3.4";
                break;

            case  46: Stemp = "1.2*.3.4";
                break;

            case  47: Stemp = "1.2.*3.4";
                break;

            case  48: Stemp = "&1.2.3.4";
                break;

            case  49: Stemp = "1.2.3.4 &";
                break;

            case  50: Stemp = "1&.2.3.4";
                break;

            case  51: Stemp = "1.2&.3.4";
                break;

            case  52: Stemp = "1.2.&3.4";
                break;

            case  53: Stemp = "|1.2.3.4";
                break;

            case  54: Stemp = "1.2.3.4 |";
                break;

            case  55: Stemp = "1.2.3.4|";
                break;

            case  56: Stemp = "1|.2.3.4";
                break;

            case  57: Stemp = "1.2|.3.4";
                break;

            case  58: Stemp = "1.2.|3.4";
                break;

            case  59: Stemp = "\\1.2.3.4";
                break;

            case  60: Stemp = "1.2.3.4 \\";
                break;

            case  61: Stemp = "1.2.3.4\\";
                break;

            case  62: Stemp = "1\\.2.3.4";
                break;

            case  63: Stemp = "1.2\\.3.4";
                break;

            case  64: Stemp = "1.2.\\3.4";
                break;

            case  65: Stemp = ":1.2.3.4";
                break;

            case  66: Stemp = "1.2.3.4 :";
                break;

            case  67: Stemp = "1.2.3.4:";
                break;

            case  68: Stemp = "1:.2.3.4";
                break;

            case  69: Stemp = "1.:2.3.4";
                break;

            case  70: Stemp = "1.2.3:.4";
                break;

            case  71: Stemp = ";1.2.3.4";
                break;

            case  72: Stemp = "1.2.3.4;";
                break;

            case  73: Stemp = "1;.2.3.4";
                break;

            case  74: Stemp = "1.2;.;3.4";
                break;

            case  75: Stemp = "1.2.;3.4";
                break;

            case  76: Stemp = "\"1.2.3.4";
                break;

            case  77: Stemp = "1.2.3.4\"";
                break;

            case  78: Stemp = "1\".2.3.4";
                break;

            case  79: Stemp = "1.2\".3.4";
                break;

            case  80: Stemp = "1.2.\"3.4";
                break;

            case  81: Stemp = "\'1.2.3.4";
                break;

            case  82: Stemp = "1.2.3.4\'";
                break;

            case  83: Stemp = "1\'.2.3.4";
                break;

            case  84: Stemp = "1.2\'.3.4";
                break;

            case  85: Stemp = "1.2.\'3.4";
                break;

            case  86: Stemp = "f1.2.3.4";
                break;

            case  87: Stemp = "1.2.3.4f";
                break;

            case  88: Stemp = "1.f2.3.4";
                break;

            case  89: Stemp = "1.2.f3.4";
                break;

            // Out of range
            case  90: Stemp = "-1.2.3.4";
                break;

            case  91: Stemp = "1.-2.3.4";
                break;

            case  92: Stemp = "1.2.-3.4";
                break;

            case  93: Stemp = "1.2.3.-4";
                break;

            case  94: Stemp = "-1000000.-1000000.-1000000.-1000000";
                break;

            case  95: Stemp = "1000000.-1000000.-1000000.-1000000";
                break;

            case  96: Stemp = "1000000.1000000.-1000000.-1000000";
                break;

            case  97: Stemp = "1000000.1000000.1000000.-1000000";
                break;

            case  98: Stemp = "1000000.-1000000.1000000.1000000";
                break;

            case  99: Stemp = "1000000.1000000.-1000000.1000000";
                break;

            //Skip this one = generate no error
            case 100: Stemp  = "10000.20000.30000.40000";
                Me.result[i] = true;
                break;

            //Unicode chars

            //Chinese
            case 101: Stemp = "ق1.2.3.4";
                break;

            case 102: Stemp = "1.ق2.3.4";
                break;

            case 103: Stemp = "1.2.3ق.4";
                break;

            case 104: Stemp = "1.2.3.4ق";
                break;

            case 105: Stemp = "1.2.3.4 ق";
                break;

            case 106: Stemp = "1.ق2ق.3.4";
                break;

            case 107: Stemp = "ش1.2.3.4";
                break;

            case 108: Stemp = "1.ش2.3.4";
                break;

            case 109: Stemp = "1.2.3ش.4";
                break;

            case 110: Stemp = "1.2.3.4ش";
                break;

            case 111: Stemp = "1.2.3.4 ش";
                break;

            case 112: Stemp = "1.ش2ش.3.4";
                break;

            case 113: Stemp = "ش1.2.3.4";
                break;

            case 114: Stemp = "1.ش2.3.4";
                break;

            case 115: Stemp = "1.2.3ش.4";
                break;

            case 116: Stemp = "1.2.3.4ش";
                break;

            case 117: Stemp = "1.2.3.4 ش";
                break;

            case 118: Stemp = "1.ش2ش.3.4";
                break;

            case 119: Stemp = "ل1.2.3.4";
                break;

            case 120: Stemp = "1.ل2.3.4";
                break;

            case 121: Stemp = "1.2.3ل.4";
                break;

            case 122: Stemp = "1.2.3.4ل";
                break;

            case 123: Stemp = "1.2.3.4 ل";
                break;

            case 124: Stemp = "1.لل.3.4";
                break;

            case 125: Stemp = "ؤ1.2.3.4";
                break;

            case 126: Stemp = "1.ؤ2.3.4";
                break;

            case 127: Stemp = "1.2.3ؤ.4";
                break;

            case 128: Stemp = "1.2.3.4ؤ";
                break;

            case 129: Stemp = "1.2.3.4 ؤ";
                break;

            case 130: Stemp = "1.ؤؤ.3.4";
                break;

            //Japanese
            case 131: Stemp = "प1.2.3.4";
                break;

            case 132: Stemp = "1.प2.3.4";
                break;

            case 133: Stemp = "1.2.3प.4";
                break;

            case 134: Stemp = "1.2.3.4प";
                break;

            case 135: Stemp = "1.2.3.4 प";
                break;

            case 136: Stemp = "1.पप.3.4";
                break;

            case 137: Stemp = "ग1.2.3.4";
                break;

            case 138: Stemp = "1.ग2.3.4";
                break;

            case 139: Stemp = "1.2.3ग.4";
                break;

            case 140: Stemp = "1.2.3.4ग";
                break;

            case 141: Stemp = "1.2.3.4 ग";
                break;

            case 142: Stemp = "1.गग.3.4";
                break;

            case 143: Stemp = "ल1.2.3.4";
                break;

            case 144: Stemp = "1.ल2.3.4";
                break;

            case 145: Stemp = "1.2.3ल.4";
                break;

            case 146: Stemp = "1.2.3.4ल";
                break;

            case 147: Stemp = "1.2.3.4 ल";
                break;

            case 148: Stemp = "1.लल.3.4";
                break;

            case 149: Stemp = "्1.2.3.4";
                break;

            case 150: Stemp = "1.्2.3.4";
                break;

            case 151: Stemp = "1.2.3्.4";
                break;

            case 152: Stemp = "1.2.3.4्";
                break;

            case 153: Stemp = "1.2.3.4 ्";
                break;

            case 154: Stemp = "1.््.3.4";
                break;

            // Russian
            case 155: Stemp = "К1.2.3.4";
                break;

            case 156: Stemp = "1.К2.3.4";
                break;

            case 157: Stemp = "1.2.3К.4";
                break;

            case 158: Stemp = "1.2.3.4К";
                break;

            case 159: Stemp = "1.2.3.4 К";
                break;

            case 160: Stemp = "1.КК.3.4";
                break;

            case 161: Stemp = "г1.2.3.4";
                break;

            case 162: Stemp = "1.г2.3.4";
                break;

            case 163: Stemp = "1.2.3г.4";
                break;

            case 164: Stemp = "1.2.3.4г";
                break;

            case 165: Stemp = "1.2.3.4 г";
                break;

            case 166: Stemp = "1.г.3.4";
                break;

            case 167: Stemp = "ы1.2.3.4";
                break;

            case 168: Stemp = "1.ы2.3.4";
                break;

            case 169: Stemp = "1.2.3ы.4";
                break;

            case 170: Stemp = "1.2.3.4ы";
                break;

            case 171: Stemp = "1.2.3.4 ы";
                break;

            case 172: Stemp = "1.ыы.3.4";
                break;

            case 173: Stemp = "ш1.2.3.4";
                break;

            case 174: Stemp = "1.ш2.3.4";
                break;

            case 175: Stemp = "1.2.3ш.4";
                break;

            case 176: Stemp = "1.2.3.4ш";
                break;

            case 177: Stemp = "1.2.3.4 ш";
                break;

            case 178: Stemp = "1.шш.3.4";
                break;


/**/
            } //end switch

            try {
                Me.testor[i] = new Version(Stemp);
            } catch (FormatException e) {
                if ((i > MAX_ARG) && (i <= MAX_FORMAT))
                {
                    Me.result[i] = true;
                    //Console.WriteLine( "Exception for " + i + ": " + e.ToString() );
                }
                else if ((i > 100) && (i <= MAX_UNICODE))
                {
                    Me.result[i] = true;
                    //Console.WriteLine( "Exception for " + i + ": " + e.ToString() );
                }
                else
                {
                    Console.WriteLine("Wrong Exception for " + i + ": " + e.ToString());
                    Console.WriteLine("Should be FormatException.");
                }
            } catch (ArgumentNullException e0) {
                if (i == 0)
                {
                    Me.result[i] = true;
                    //Console.WriteLine( "Exception for " + i + ": " + e0.ToString() );
                }
                else
                {
                    Console.WriteLine("Wrong Exception for " + i + ": " + e0.ToString());
                    Console.WriteLine("Should be ArgumentNullException.");
                }
            } catch (ArgumentOutOfRangeException e2) {
                if ((i >= MAX_FORMAT) && (i <= MAX_RANGE))
                {
                    Me.result[i] = true;
                    //Console.WriteLine( "Exception for " + i + ": " + e2.ToString() );
                }
                else
                {
                    Console.WriteLine("Wrong Exception for " + i + ": " + e2.ToString());
                    Console.WriteLine("Should be ArgumentOutOfRangeException.");
                }
            } catch (ArgumentException e1) {
                if (i <= MAX_ARG)
                {
                    Me.result[i] = true;
                    //Console.WriteLine( "Exception for " + i + ": " + e1.ToString() );
                }
                else
                {
                    Console.WriteLine("Wrong Exception for " + i + ": " + e1.ToString());
                    Console.WriteLine("Should be ArgumentNullException.");
                }
            } catch (Exception e) {
                Console.WriteLine("Wrong Exception for " + i + ": " + e.ToString());
                Console.WriteLine("Should be ArgumentNullException.");
            }
        }

        // Compile results for return value
        for (i = 0; i < MAX_TEST; i++)
        {
            if (!Me.result[i])
            {
                ret = i;
                Console.WriteLine("Error for #" + i + " - Version is: " + Me.testor[i].ToString());
            }
        }
        if (ret < 0)
        {
            ret = 100;
        }

        if (ret == 100)
        {
            Console.WriteLine("Success!");
        }
        else
        {
            Console.WriteLine("FAILED TEST!");
        }

        return(ret);
    }