blob: 41127d9a88227f5f4f959c9a97a646c8e0376b7d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2014 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.core.tests.compiler.regression;
import java.util.Map;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import junit.framework.Test;
@SuppressWarnings({ "unchecked", "rawtypes" })
public class UnderscoresInLiteralsTest extends AbstractRegressionTest {
static {
// TESTS_NUMBERS = new int[] { 24 };
}
public UnderscoresInLiteralsTest(String name) {
super(name);
}
public static Test suite() {
return buildMinimalComplianceTestSuite(testClass(), F_1_7);
}
public static Class testClass() {
return UnderscoresInLiteralsTest.class;
}
public void test001() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0b_001);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0b_001);\n" +
" ^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test002() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0_b001);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0_b001);\n" +
" ^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test003() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0b001_);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0b001_);\n" +
" ^^^^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test004() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0x_11.0p33f);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0x_11.0p33f);\n" +
" ^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test005() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0x11_.0p33f);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0x11_.0p33f);\n" +
" ^^^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test006() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0x11._0p33f);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0x11._0p33f);\n" +
" ^^^^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test007() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0x11.0_p33f);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0x11.0_p33f);\n" +
" ^^^^^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test008() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0x11.0p_33f);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0x11.0p_33f);\n" +
" ^^^^^^^^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test009() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0x11.0p33_f);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0x11.0p33_f);\n" +
" ^^^^^^^^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test010() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0x_0001AEFBBA);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0x_0001AEFBBA);\n" +
" ^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test011() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0_x0001AEFBBA);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0_x0001AEFBBA);\n" +
" ^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test012() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0x0001AEFBBA_);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0x0001AEFBBA_);\n" +
" ^^^^^^^^^^^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test013() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(_01234567);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(_01234567);\n" +
" ^^^^^^^^^\n" +
"_01234567 cannot be resolved to a variable\n" +
"----------\n");
}
public void test014() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(01234567_);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(01234567_);\n" +
" ^^^^^^^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test015() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(1_.236589954f);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(1_.236589954f);\n" +
" ^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test016() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(1._236589954f);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(1._236589954f);\n" +
" ^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test017() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(1_e2);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(1_e2);\n" +
" ^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test018() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(1e_2);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(1e_2);\n" +
" ^^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test019() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(1e2_);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(1e2_);\n" +
" ^^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test020() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(01e2_);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(01e2_);\n" +
" ^^^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test021() {
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(01_e2_);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(01_e2_);\n" +
" ^^^\n" +
"Underscores have to be located within digits\n" +
"----------\n");
}
public void test022() {
Map customedOptions = getCompilerOptions();
customedOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_6);
customedOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_6);
customedOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
this.runNegativeTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0b1110000_);\n" +
" }\n" +
"}"
},
"----------\n" +
"1. ERROR in X.java (at line 3)\n" +
" System.out.println(0b1110000_);\n" +
" ^^^^^^^^^^\n" +
"Underscores can only be used with source level 1.7 or greater\n" +
"----------\n",
null,
true,
customedOptions);
}
public void test023() {
this.runConformTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(0x1234____5678____90L);\n" +
" }\n" +
"}"
},
"78187493520");
}
public void test024() {
this.runConformTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(90_00__00_0);\n" +
" }\n" +
"}"
},
"9000000");
}
}