1 package groovy.lang; 2 3 import org.codehaus.groovy.classgen.TestSupport; 4 import org.codehaus.groovy.control.CompilationFailedException; 5 6 7 /*** 8 * @author Steve Goetze 9 */ 10 public class ScriptIntegerDivideTest extends TestSupport { 11 12 /*** 13 * If a script that invokes integer division is specified as a literal string, the 14 * division token "\" needs to be escaped. 15 */ 16 public void testIntegerDivide() throws Exception { 17 assertScript( "assert 4//3 == 1" ); 18 } 19 20 /*** 21 * If a groovy script is spec'd in a literal string, any intended Integer 22 * divisions need to be escaped. In cases where the integer division token "\" 23 * is surrounded by whitespace the literal cannot be constructed, which is OK. 24 * In the case where the second operand immediately follows the token, the literal 25 * can be specified, but will result in a compilation error as the token immediately 26 * following the backslash will be taken as the escape sequence. 27 */ 28 public void testIntegerDivideWithBadEscape() throws Exception { 29 try { 30 assertScript( "assert 4\3 == 1" ); 31 } catch (CompilationFailedException e) { 32 return; 33 } 34 fail("Should catch a CompilationFailedException"); 35 } 36 }