| package com.siyeh.ipp; |
| |
| import org.junit.Assert; |
| |
| import java.io.EOFException; |
| import java.io.IOException; |
| import java.util.List; |
| import java.util.ArrayList; |
| |
| // Note: this class never gets compiled. It's simply here to hold a |
| //bunch of manual test cases |
| |
| public class ManualTestClass |
| { |
| int foo[]; |
| int[] bar[]; |
| |
| public void testInteger() |
| { |
| // convert between octal, hex, and decimal |
| int foo = 31; |
| |
| // convert between octal, hex, and decimal |
| long bar = 0x1fL; |
| |
| // convert between octal, hex, and decimal |
| int foo2 = 02556055060602406713736772653302544613000000000000000; |
| |
| // convert between octal, hex, and decimal |
| long bar2 = 31000000000000000000000000000000000000000000000L; |
| |
| } |
| public void testFloat() |
| { |
| // convert between hex, and decimal |
| float foo = 0x1.fp4f; |
| double doubleFoo = 31.2; |
| } |
| |
| public void testShift() |
| { |
| int x = 1; |
| int y = 2; |
| |
| // test that this will go to shift and back |
| x = y * 8; |
| |
| // test that this doesn't do anything |
| x = y * 7; |
| |
| // test that this will go to shift and back |
| x *= 8; |
| |
| // test that this doesn't do anything |
| x *= 7; |
| |
| // test that this will go to shift and back |
| x = y / 8; |
| |
| // test that this doesn't do anything |
| x = y / 7; |
| |
| // test that this will go to shift and back |
| x /= 8; |
| |
| // test that this doesn't do anything |
| x /= 7; |
| |
| |
| // test that this will go to shift and back |
| x = 3 + y * 8; |
| } |
| |
| public void testFQNames() |
| { |
| // test that this will be transformed |
| java.util.HashMap hashMap = new java.util.HashMap(); |
| } |
| |
| public void testOpAssign() |
| { |
| int a = 0; |
| int[] b = new int[1]; |
| |
| // test that this will be shortened |
| a = a + 3; |
| |
| // test that this will be shortened |
| a = a * 3; |
| |
| // test that this will be shortened |
| a = a - 3; |
| |
| // test that this will be shortened |
| a = a % 3; |
| |
| // test that this will be shortened |
| a = a / 3; |
| |
| // test that this will be shortened |
| a = (a) / 3; |
| |
| // test that this will be shortened |
| b[a] = b[a] / 3; |
| |
| // test that this will be shortened |
| b[a] = b[(a)] / 3; |
| |
| // test that this does nothing |
| b[a++] = b[a++] / 3; |
| } |
| |
| public void testAnd() |
| { |
| boolean foo = true; |
| boolean bar = true; |
| boolean baz = true; |
| |
| // test that this will be changed |
| if(foo && bar) |
| { |
| |
| } |
| // test that this will be changed |
| if(foo && bar && baz) |
| { |
| |
| } |
| |
| // test that this will be changed |
| if(!foo && bar && !baz) |
| { |
| |
| } |
| |
| // test both of these |
| if((foo && bar) && baz) |
| { |
| |
| } |
| |
| // test that this will be changed |
| if(3 < 4 && 5 != 2) |
| { |
| |
| } |
| } |
| |
| public void testOr() |
| { |
| boolean foo = true; |
| boolean bar = true; |
| boolean baz = true; |
| |
| // test that this will be changed |
| if(foo || bar) |
| { |
| |
| } |
| // test that this will be changed |
| if(foo || bar || baz) |
| { |
| |
| } |
| |
| // test that this will be changed |
| if(!foo || bar || !baz) |
| { |
| |
| } |
| |
| // test both of these |
| if((foo || bar) || baz) |
| { |
| |
| } |
| } |
| |
| public void testBoolEquality() |
| { |
| boolean foo = true; |
| |
| // test that this collapses to if(foo) |
| if(foo == true) |
| { |
| |
| } // test that this collapses to if(!foo) |
| if(foo == false) |
| { |
| |
| } // test that this collapses to if(!foo) |
| if(foo != true) |
| { |
| |
| } // test that this collapses to if(foo) |
| if(foo != false) |
| { |
| |
| } // test that this collapses to if(foo) |
| if(true == foo) |
| { |
| |
| } |
| // test that this collapses to if(!foo) |
| if(false == foo) |
| { |
| |
| } // test that this collapses to if(!foo) |
| if(true != foo) |
| { |
| |
| } // test that this collapses to if(foo) |
| if(false != foo) |
| { |
| } |
| // test that this collapses to if(foo) |
| if(true == 3 > 4) |
| { |
| } |
| // test that this collapses to if(foo) |
| if(true != 3 > 4) |
| { |
| } |
| |
| } |
| |
| public void testEquality() |
| { |
| String foo = "foo"; |
| String bar = "bar"; |
| int foo2 = 100; |
| int baz2 = 3; |
| |
| // test turning this into .equals and back |
| if(foo == bar) |
| { |
| |
| } |
| |
| // test that this doesn't have a "change to equals" intention |
| if(foo2 == baz2) |
| { |
| |
| } |
| |
| |
| // test that this does have a "change to equals" intention |
| if("foo" + "bar" == "bar" + "foo") |
| { |
| |
| } |
| |
| // test turning this into ! .equals and back |
| if(foo != bar) |
| { |
| |
| } |
| |
| // test that this doesn't have a "change to ! equals" intention |
| if(foo2 != baz2) |
| { |
| |
| } |
| |
| } |
| |
| public void testFlipEquals() |
| { |
| String foo = "foo"; |
| String bar = "bar"; |
| |
| // test flipping this |
| if(foo.equals(bar)) |
| { |
| |
| } |
| // test flipping this |
| if("foo".equals("foo" + "bar")) |
| { |
| |
| } |
| // test flipping this |
| if(foo.equalsIgnoreCase(bar)) |
| { |
| |
| } |
| } |
| |
| public void testJUnit() |
| { |
| boolean foo = true; |
| String bar = "foo"; |
| |
| // test changing this to assertEquals and back |
| Assert.assertTrue("foo", foo); |
| |
| // test changing this to assertEquals and back |
| assertTrue(foo); |
| |
| // test changing this to assertEquals and back |
| assertFalse("foo", foo); |
| |
| // test changing this to assertEquals and back |
| assertEquals(false, foo); |
| |
| // test changing this to assertEquals and back |
| assertNull("foo", bar); |
| |
| // test changing this to assertEquals and back |
| assertNull(bar); |
| |
| // test changing this to assertTrue and back |
| assertEquals("foo", true, foo); |
| |
| // test changing this to assertTrue and back |
| assertEquals(true, foo); |
| |
| // test changing this to assertNull and back |
| assertEquals("foo", null, bar); |
| |
| // test changing this to assertNull and back |
| assertEquals(null, bar); |
| |
| |
| // test changing this to assertFalse and back |
| assertTrue(foo); |
| |
| // test changing this to assertTrue and back |
| assertFalse("foo", foo); |
| |
| String baz1 = "foo"; |
| String baz2 = "bar"; |
| |
| // test changing this to assertTrue and back |
| assertEquals(baz1, baz2); |
| |
| // test changing this to assertTrue and back |
| assertEquals("test", true, baz1.equals(baz2)); |
| |
| int int1 = 3; |
| int int2 = 4; |
| // test changing this to assertTrue and back |
| assertEquals(int1, int2); |
| |
| // test changing this to assertTrue and back |
| assertEquals("test", int1, int2); |
| |
| } |
| |
| public void testMergeAndIf() |
| { |
| boolean foo = true; |
| boolean bar = true; |
| |
| //test merge these |
| if(foo) |
| { |
| if(bar) |
| { |
| System.out.println("test2"); |
| } |
| } |
| |
| //test merge these |
| if(foo) |
| if(bar) |
| System.out.println("test2"); |
| |
| //test merge these |
| if(foo) |
| { |
| if(bar) |
| System.out.println("test2"); |
| } |
| |
| //test merge these |
| if(foo) |
| if(bar) |
| { |
| System.out.println("test2"); |
| } |
| |
| //test that these don't merge |
| if(foo) |
| { |
| if(bar) |
| { |
| System.out.println("test2"); |
| } |
| else |
| { |
| System.out.println("test3"); |
| } |
| } |
| |
| //test that these don't merge |
| if(foo) |
| { |
| if(bar) |
| { |
| System.out.println("test2"); |
| } |
| } |
| else |
| { |
| System.out.println("test3"); |
| } |
| } |
| |
| public void testMergeOrIf() |
| { |
| boolean foo = true; |
| boolean bar = true; |
| if(foo) |
| { |
| System.out.println("1"); |
| } |
| else if(bar) |
| { |
| System.out.println("1"); |
| } |
| else |
| { |
| System.out.println("2"); |
| } |
| |
| // test that these don't merge |
| if(foo) |
| { |
| System.out.println("1"); |
| } |
| else if(bar) |
| { |
| System.out.println("3"); |
| } |
| else |
| { |
| System.out.println("2"); |
| } |
| // test that these don't merge |
| if(foo) |
| { |
| System.out.println("1"); |
| } |
| else if(bar) |
| { |
| } |
| else |
| { |
| System.out.println("2"); |
| } |
| |
| if(foo) |
| { |
| System.out.println("2"); |
| return; |
| } |
| if(bar) |
| { |
| System.out.println("2"); |
| return; |
| } |
| |
| |
| if(foo) |
| { |
| System.out.println("1"); |
| return; |
| } |
| if(bar) |
| { |
| System.out.println("1"); |
| return; |
| } |
| else |
| { |
| System.out.println("2"); |
| } |
| } |
| |
| public void testFlipConditional() |
| { |
| boolean foo = true; |
| boolean bar = true; |
| int x = 3; |
| |
| //test flipping this |
| x = foo?3:4; |
| System.out.println("x = " + x); |
| x = foo != bar?3:4; |
| System.out.println("x = " + x); |
| } |
| |
| public void testSwitchToIf() throws InterruptedException |
| { |
| int x = 0; |
| // test changing this to if-else |
| switch(x) |
| { |
| case (3): |
| case (4): |
| System.out.println("3"); |
| System.out.println("4"); |
| break; |
| case (5): |
| case (6): |
| System.out.println("5"); |
| System.out.println("6"); |
| break; |
| } |
| |
| // test changing this to if-else |
| switch(x) |
| { |
| case (3): |
| case (4): |
| System.out.println("3"); |
| System.out.println("4"); |
| break; |
| case (5): |
| case (6): |
| System.out.println("5"); |
| System.out.println("6"); |
| break; |
| default: |
| case (7): |
| System.out.println("default"); |
| break; |
| } |
| |
| // test changing this to if-else |
| switch(x) |
| { |
| case (3): |
| case (4): |
| //test comment |
| System.out.println("3"); |
| //test comment3 |
| System.out.println("4"); |
| //test comment2 |
| break; |
| default: |
| case (7): |
| System.out.println("default"); |
| break; |
| case (5): |
| case (6): |
| System.out.println("5"); |
| System.out.println("6"); |
| break; |
| } |
| |
| // test changing this to if-else (fallthrough) |
| switch(x) |
| { |
| case (3): |
| case (4): |
| System.out.println("3"); |
| System.out.println("4"); |
| case (5): |
| case (6): |
| System.out.println("5"); |
| System.out.println("6"); |
| break; |
| default: |
| case (7): |
| System.out.println("default"); |
| break; |
| } |
| // test changing this to if-else (fallthrough) |
| switch(x) |
| { |
| case (3): |
| case (4): |
| System.out.println("3"); |
| System.out.println("4"); |
| break; |
| case (5): |
| case (6): |
| System.out.println("5"); |
| System.out.println("6"); |
| default: |
| case (7): |
| System.out.println("default"); |
| break; |
| } |
| |
| // test changing this to if-else (fallthrough) |
| switch(x) |
| { |
| case (3): |
| case (4): |
| System.out.println("3"); |
| System.out.println("4"); |
| case (5): |
| case (6): |
| System.out.println("5"); |
| System.out.println("6"); |
| default: |
| case (7): |
| System.out.println("default"); |
| break; |
| } |
| |
| |
| // test changing this to if-else (side effect on switch expression) |
| int i; |
| Label: |
| switch(x++) |
| { |
| case (3): |
| case (4): |
| System.out.println("3"); |
| System.out.println("4"); |
| break; |
| case (5): |
| case (6): |
| System.out.println("5"); |
| System.out.println("6"); |
| break; |
| default: |
| case (7): |
| System.out.println("default"); |
| break; |
| } |
| |
| // test changing this to if-else (nested break) |
| switch(x) |
| { |
| case (3): |
| case (4): |
| System.out.println("3"); |
| System.out.println("4"); |
| if(true) |
| { |
| break; |
| } |
| break; |
| case (5): |
| case (6): |
| System.out.println("5"); |
| System.out.println("6"); |
| break; |
| default: |
| case (7): |
| System.out.println("default"); |
| break; |
| } |
| |
| // test changing this to if-else (declaration between branches) |
| switch(x) |
| { |
| case (3): |
| case (4): |
| int y; |
| Object foo; |
| System.out.println("3"); |
| System.out.println("4"); |
| break; |
| case (5): |
| case (6): |
| foo.wait(0); |
| System.out.println("5"); |
| System.out.println("6"); |
| break; |
| default: |
| case (7): |
| System.out.println("y = " + y); |
| System.out.println("default"); |
| break; |
| } |
| |
| } |
| |
| public void testFlipComparison() |
| { |
| int foo = 3; |
| int bar = 4; |
| |
| //flip this |
| if(3 > 4) |
| { |
| |
| } |
| //flip this |
| if(3 >= 4) |
| { |
| |
| } |
| //flip this |
| if(3 < 4) |
| { |
| |
| } |
| //flip this |
| if(3 <= 4) |
| { |
| |
| } |
| //flip this |
| if(3 == 4) |
| { |
| |
| } |
| //flip this |
| if(3 != 4) |
| { |
| |
| } |
| } |
| |
| public void testNegateComparison() |
| { |
| int foo = 3; |
| int bar = 4; |
| |
| //negate this |
| if(3 > 4) |
| { |
| |
| } |
| //negate this |
| if(3 >= 4) |
| { |
| |
| } |
| //negate this |
| if(3 < 4) |
| { |
| |
| } |
| //negate this |
| if(3 <= 4) |
| { |
| |
| } |
| //negate this |
| if(3 == 4) |
| { |
| |
| } |
| //negate this |
| if(3 != 4) |
| { |
| |
| } |
| } |
| |
| public void testRemoveConditional() |
| { |
| boolean foo = true; |
| boolean baz = false; |
| |
| // test removing this conditional |
| boolean bar = foo?true:false; |
| |
| // test removing this conditional |
| bar = foo?false:true; |
| |
| //test removing this conditional |
| bar = foo?(false):(true); |
| |
| // test that this conditional can't be removed |
| bar = foo?true:true; |
| |
| // test that this conditional can't be removed |
| bar = foo?false:false; |
| } |
| |
| public void testRemoveIf() |
| { |
| boolean foo = false; |
| boolean bar = true; |
| |
| // test removing this if |
| if(!foo) |
| { |
| bar = true; |
| } |
| else |
| { |
| bar = false; |
| } |
| |
| // test removing this if |
| if(!foo) |
| { |
| bar = false; |
| } |
| else |
| { |
| bar = true; |
| } |
| |
| // test that this if can't be removed |
| if(foo) |
| { |
| bar = true; |
| } |
| else |
| { |
| bar = true; |
| } |
| |
| // test that this if can't be removed |
| if(!foo) |
| { |
| bar = false; |
| } |
| else |
| { |
| bar = false; |
| } |
| } |
| |
| public boolean testRemoveIfReturn1() |
| { |
| boolean foo = true; |
| // test removing this |
| if(!foo) |
| { |
| return true; |
| } |
| else |
| { |
| return false; |
| } |
| } |
| |
| public boolean testRemoveIfReturn2() |
| { |
| boolean foo = true; |
| // test removing this |
| if(!foo) |
| { |
| return false; |
| } |
| else |
| { |
| return true; |
| } |
| } |
| |
| public boolean testRemoveIfReturn3() |
| { |
| boolean foo = true; |
| // test that this if can't be removed |
| if(!foo) |
| { |
| return true; |
| } |
| else |
| { |
| return true; |
| } |
| } |
| |
| public boolean testRemoveIfReturn() |
| { |
| boolean foo = true; |
| // test that this if can't be removed |
| if(!foo) |
| { |
| return false; |
| } |
| else |
| { |
| return false; |
| } |
| } |
| |
| public boolean testImplicitAssignIf() |
| { |
| boolean foo = true; |
| boolean bar; |
| // test that this if can't be removed |
| bar = false; |
| if(!foo) |
| { |
| bar = true; |
| } |
| return bar; |
| } |
| public boolean testImplicitAssignIfNegated() |
| { |
| boolean foo = true; |
| boolean bar; |
| // test that this if can't be removed |
| bar = true; |
| if(!foo) |
| { |
| bar = false; |
| } |
| return bar; |
| } |
| |
| public boolean testRemoveIfImplicitReturn1() |
| { |
| boolean foo = true; |
| // test removing this |
| if(!foo) |
| { |
| return true; |
| } |
| return false; |
| } |
| |
| public boolean testRemoveIfImplicitReturn2() |
| { |
| boolean foo = true; |
| // test removing this |
| if(!foo) |
| { |
| return false; |
| } |
| return true; |
| } |
| |
| public boolean testRemoveIfImplicitReturn3() |
| { |
| boolean foo = true; |
| // test that this if can't be removed |
| if(!foo) |
| { |
| return true; |
| } |
| return true; |
| } |
| |
| public boolean testRemoveIfImplicitReturn() |
| { |
| boolean foo = true; |
| // test that this if can't be removed |
| if(!foo) |
| { |
| return false; |
| } |
| return false; |
| } |
| |
| public int testReplaceIfImplicitReturnWithConditional() |
| { |
| boolean foo = true; |
| if(!foo) |
| { |
| return 3; |
| } |
| return 4; |
| } |
| |
| public void testReplaceConditionalWithIfAssign() |
| { |
| boolean foo = true; |
| int a; |
| // test replacing this with if-then, and back again |
| a = foo ? 3 : 4; |
| } |
| |
| public void testReplaceConditionalWithIfDeclaration() |
| { |
| boolean foo = true; |
| // test replacing this with if-then |
| int a = foo?3:4; |
| } |
| |
| public int testReplaceConditionalWithIfReturn() |
| { |
| boolean foo = true; |
| // test replacing this with if-then, and back again |
| return foo?3:4; |
| } |
| |
| public void testIfToSwitch() |
| { |
| final int x = 2; |
| Label: |
| if(x == 4 || x == 3) |
| { |
| // test comment |
| System.out.println("1"); |
| } |
| else if(x == 5 || x == 6) |
| { |
| System.out.println("2"); |
| } |
| else |
| { |
| System.out.println("3"); |
| } |
| |
| // test that the first and ssecond blocks remain wrapped |
| if(x == 4 || x == 3) |
| { |
| int y = 3; |
| System.out.println("1"); |
| } |
| else if(x == 5 || x == 6) |
| { |
| int y = 4; |
| System.out.println("2"); |
| } |
| else |
| { |
| System.out.println("3"); |
| } |
| |
| // test that the first block remains wrapped, but the second doesn't |
| if(x == 4 || x == 3) |
| { |
| int y = 3; |
| System.out.println("1"); |
| } |
| else if(x == 5 || x == 6) |
| { |
| for(int y = 0; y < 100; y++) |
| { |
| System.out.println("Barangus!"); |
| } |
| System.out.println("2"); |
| } |
| else |
| { |
| System.out.println("3"); |
| } |
| |
| for(; ;) |
| { |
| if(x == 4 || x == 3) |
| { |
| // test comment |
| System.out.println("1"); |
| break; |
| } |
| else if(x == 5 || x == 6) |
| { |
| System.out.println("2"); |
| } |
| else |
| { |
| System.out.println("3"); |
| } |
| } |
| } |
| |
| public void testIfToSwitchEnum() |
| { |
| final MyEnum x = MyEnum.Red; |
| if((x == MyEnum.Red)) |
| { |
| // test comment |
| System.out.println("1"); |
| } |
| else if((x == MyEnum.Blue) || x == MyEnum.Green) |
| { |
| System.out.println("2"); |
| } |
| else |
| { |
| System.out.println("3"); |
| } |
| } |
| |
| public void testFlipAnd() |
| { |
| boolean foo = true; |
| boolean bar = false; |
| boolean baz = false; |
| |
| // flip these |
| if(foo && bar) |
| { |
| System.out.println("1"); |
| } |
| // flip these |
| if(foo && bar && baz) |
| { |
| System.out.println("1"); |
| } |
| } |
| |
| public void testFlipOr() |
| { |
| boolean foo = true; |
| boolean bar = false; |
| boolean baz = false; |
| |
| // flip these |
| if(foo || bar) |
| { |
| System.out.println("1"); |
| } |
| // flip these |
| if(foo || bar || baz) |
| { |
| System.out.println("1"); |
| } |
| } |
| |
| public void flipCommutative() |
| { |
| "bar".equals("foo"); |
| "foo".equalsIgnoreCase("bar"); |
| "foo".compareTo("bar"); |
| } |
| |
| public void testAssertToIf(boolean foo) |
| { |
| assert foo :"bar"; |
| assert foo ; |
| assert !foo ; |
| } |
| |
| public void testDetailException() throws IOException |
| { |
| // check that this is detailed |
| try |
| { |
| if(true) |
| { |
| throw new NullPointerException(); |
| } |
| throw new ArrayIndexOutOfBoundsException(); |
| } |
| catch(Exception e) |
| { |
| System.out.println("Barangus!"); |
| } |
| |
| // check that this is detailed, and the exceptions sorted correctly |
| try |
| { |
| if(true) |
| { |
| throw new IOException(); |
| } |
| throw new EOFException(); |
| } |
| catch(Exception e) |
| { |
| System.out.println("Barangus!"); |
| } |
| |
| // check that this gets no intention |
| try |
| { |
| if(true) |
| { |
| throw new NullPointerException(); |
| } |
| throw new ArrayIndexOutOfBoundsException(); |
| } |
| catch(NullPointerException e) |
| { |
| System.out.println("Barangus!"); |
| } |
| catch(ArrayIndexOutOfBoundsException e) |
| { |
| System.out.println("Barangus!"); |
| } |
| |
| |
| // check that this doesn't get detailed |
| try |
| { |
| if(true) |
| { |
| throw new IOException(); |
| } |
| throw new EOFException(); |
| } |
| catch(Error e) |
| { |
| System.out.println("Barangus!"); |
| } |
| |
| } |
| |
| public void testDetailMethodExceptions() |
| { |
| try |
| { |
| if(true) |
| { |
| foo(); |
| } |
| throw new ArrayIndexOutOfBoundsException(); |
| } |
| catch(Exception e) |
| { |
| System.out.println("Barangus!"); |
| } |
| } |
| |
| private void foo() throws IOException |
| { |
| throw new IOException(); |
| } |
| |
| public void testSimplifyDeclaration() |
| { |
| // test simplifying this |
| int foo[]; |
| |
| // test simplifying this |
| int bar[] = new int[3]; |
| |
| // test simplifying this |
| int[] baz[] = new int[3][]; |
| |
| // test simplifying this |
| int bar2[] = new int[3], bar3[] = new int[4]; |
| |
| // test simplifying this |
| int baz2[] = new int[3], baz3[]; |
| |
| // test that this doesn't simplify |
| int baz4[] = new int[3], baz5; |
| } |
| |
| public void testSimplifyParam(int foo[], int[] bar[], int[] baz) |
| { |
| |
| } |
| |
| public void testConstantExpression() |
| { |
| int x = 60 * 60; |
| } |
| public void testConstantSubExpression() |
| { |
| int x = 3 * 60 * 60; |
| } |
| public void testConditionalDeclaration() |
| { |
| boolean foo = bar()?true:false; |
| } |
| |
| public boolean bar() |
| { |
| return true; |
| } |
| |
| public void testConcatenation() |
| { |
| System.out.println("foo" + "bar" + "baz"); |
| final String fooString = "foo"; |
| System.out.println(fooString + "bar" + "baz"); |
| System.out.println(fooString + "bar" + 'b'); |
| System.out.println(fooString + 1 + 2); |
| System.out.println((fooString + 1) + 2); |
| System.out.println(fooString + (1 + 2)); |
| final StringBuffer buffer = new StringBuffer(); |
| buffer.append("foo" + "bar" + "baz"); |
| } |
| |
| public void testStringBufferSequencing() |
| { |
| StringBuffer buf = new StringBuffer(); |
| buf.append("foo").append("bar").append("baz"); |
| StringBuffer buf2; |
| buf2 = new StringBuffer().append("foo").append("bar").append("baz"); |
| final StringBuffer buf3 = new StringBuffer().append("foo").append("bar").append("baz"); |
| } |
| |
| public boolean testExpandBoolean() |
| { |
| boolean foo = true; |
| boolean bar = false; |
| bar = foo; |
| return bar; |
| } |
| |
| public void testSplitElseIf() |
| { |
| if (bar()) { |
| System.out.println("1"); |
| } else if (!bar()) { |
| System.out.println("2"); |
| } |
| |
| if(bar()) |
| { |
| System.out.println("1"); |
| } |
| else if(!bar()) |
| { |
| System.out.println("2"); |
| } |
| else if(!bar() && bar()) |
| { |
| System.out.println("3"); |
| } |
| |
| if(bar()) |
| { |
| System.out.println("1"); |
| } |
| else |
| { |
| System.out.println("2"); |
| } |
| } |
| |
| public void testCharToString() |
| { |
| String foo = "b" + 'c'; |
| foo +='d'; |
| StringBuffer bar = new StringBuffer(); |
| bar.append('c'); |
| bar.append('\''); |
| bar.append('"'); |
| } |
| |
| public void testStringToChar() |
| { |
| String foo = "b" + "foo"; |
| foo +="d"; |
| StringBuffer bar = new StringBuffer(); |
| bar.append("c"); |
| bar.append("\'"); |
| bar.append("\""); |
| } |
| |
| public void testMergeParallelIfs() |
| { |
| boolean b = bar(); |
| if(b) |
| System.out.println("1"); |
| if(b) |
| System.out.println("2"); |
| else |
| System.out.println("3"); |
| } |
| |
| public void testMergeParallelIfsCascaded() |
| { |
| boolean b = bar(); |
| boolean c = bar(); |
| if(b) |
| System.out.println("1"); |
| else if(c) |
| System.out.println("4"); |
| if(b) |
| System.out.println("2"); |
| else if(c) |
| System.out.println("5"); |
| else |
| System.out.println("3"); |
| } |
| |
| public void testConvertToOldForLoop() |
| { |
| List<String> locations = new ArrayList<String>(); |
| for (final String location1 : locations) { |
| System.out.println(location1); |
| } |
| } |
| public void testMergeParallelIfsWitDecls() |
| { |
| boolean b = bar(); |
| if(b) |
| { |
| int i; |
| System.out.println("1"); |
| } |
| if(b) |
| { |
| int j; |
| System.out.println("2"); |
| }else |
| System.out.println("3"); |
| } |
| |
| private void assertNull(Object s, String value) |
| { |
| boolean a = bar(); |
| boolean b = bar(); |
| if(!(((a || b)))) |
| { |
| // Do something |
| } |
| } |
| |
| public void testMergeForLoops() |
| { |
| int a = 3; |
| for (int i = 0; i < a; i++) { |
| System.out.println(i); |
| } |
| for (int i = 0; i < a; i++) |
| System.out.println(i * 2); |
| } |
| |
| private void assertNull(Object value) |
| { |
| } |
| |
| private void assertEquals(String s, Object b, Object foo) |
| { |
| } |
| |
| private void assertEquals(Object b, Object foo) |
| { |
| } |
| |
| private void assertEquals(String s, boolean b, boolean foo) |
| { |
| } |
| |
| private void assertEquals(boolean b, boolean foo) |
| { |
| } |
| |
| private void assertTrue(String message, boolean b) |
| { |
| } |
| |
| private void assertTrue(boolean b) |
| { |
| } |
| |
| private void assertFalse(String message, boolean b) |
| { |
| } |
| |
| private void assertFalse(boolean b) |
| { |
| } |
| |
| private void assertEquals(int int1, int int2) |
| { |
| } |
| |
| private void assertEquals(String message, int int1, int int2) |
| { |
| } |
| } |