Contains con = new Contains(); con.setString("abc"); con.setSubstring("A"); assertTrue(!con.eval()); con.setCasesensitive(false); assertTrue(con.eval());
Equals eq = new Equals(); eq.setArg1("a"); eq.setArg2("A"); assertTrue(!eq.eval()); eq.setCasesensitive(false); assertTrue(eq.eval());
Clone fragments detected by clone detection tool
File path: /apache-ant-1.7.0/src/tests/junit/org/apache/tools/ant/taskdefs/condition/ContainsTest.java File path: /apache-ant-1.7.0/src/tests/junit/org/apache/tools/ant/taskdefs/condition/EqualsTest.java
Method name: void testCaseSensitive() Method name: void testCaseSensitive()
Number of AST nodes: 6 Number of AST nodes: 6
1
Contains con = new Contains();
1
Equals eq = new Equals();
2
        con.setString("abc");
2
        eq.setArg1("a");
3
        con.setSubstring("A");
3
        eq.setArg2("A");
4
        assertTrue(!con.eval());
4
        assertTrue(!eq.eval());
5
        con.setCasesensitive(false);
5
        eq.setCasesensitive(false);
6
        assertTrue(con.eval());
6
        assertTrue(eq.eval());
Summary
Number of common nesting structure subtrees1
Number of refactorable cases0
Number of non-refactorable cases1
Time elapsed for finding largest common nesting structure subtrees (ms)0.0
Clones locationClones are in different classes having the same super class
Number of node comparisons28
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements6
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)0.0
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    Contains con = new Contains();
    1
    Contains con = new Contains();
    1
    Equals eq = new Equals();
    Differences
    Expression1Expression2Difference
    org.apache.tools.ant.taskdefs.condition.Containsorg.apache.tools.ant.taskdefs.condition.EqualsSUBCLASS_TYPE_MISMATCH
    coneqVARIABLE_NAME_MISMATCH
    org.apache.tools.ant.taskdefs.condition.Containsorg.apache.tools.ant.taskdefs.condition.EqualsSUBCLASS_TYPE_MISMATCH
    org.apache.tools.ant.taskdefs.condition.Containsorg.apache.tools.ant.taskdefs.condition.EqualsSUBCLASS_TYPE_MISMATCH
    1
    Equals eq = new Equals();
    2
    con.setString("abc");
    2
    con.setString("abc");
    2
    eq.setArg1("a");
    Differences
    Expression1Expression2Difference
    "abc""a"LITERAL_VALUE_MISMATCH
    setStringsetArg1METHOD_INVOCATION_NAME_MISMATCH
    coneqVARIABLE_NAME_MISMATCH
    org.apache.tools.ant.taskdefs.condition.Containsorg.apache.tools.ant.taskdefs.condition.EqualsSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression con.setString("abc") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression eq.setArg1("a") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression con.setString("abc") is a void method call, and thus it cannot be parameterized
    Expression eq.setArg1("a") is a void method call, and thus it cannot be parameterized
    Expression con cannot be unified with expression eq , because common superclass org.apache.tools.ant.taskdefs.condition.Condition does not declare member(s) public void setString(java.lang.String) , public void setArg1(java.lang.String)
    2
    eq.setArg1("a");
    3
    con.setSubstring("A");
    3
    con.setSubstring("A");
    3
    eq.setArg2("A");
    Differences
    Expression1Expression2Difference
    setSubstringsetArg2METHOD_INVOCATION_NAME_MISMATCH
    coneqVARIABLE_NAME_MISMATCH
    org.apache.tools.ant.taskdefs.condition.Containsorg.apache.tools.ant.taskdefs.condition.EqualsSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression con.setSubstring("A") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression eq.setArg2("A") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression con.setSubstring("A") is a void method call, and thus it cannot be parameterized
    Expression eq.setArg2("A") is a void method call, and thus it cannot be parameterized
    Expression con cannot be unified with expression eq , because common superclass org.apache.tools.ant.taskdefs.condition.Condition does not declare member(s) public void setSubstring(java.lang.String) , public void setArg2(java.lang.String)
    3
    eq.setArg2("A");
    4
    assertTrue(!con.eval());
    4
    assertTrue(!con.eval());
    4
    assertTrue(!eq.eval());
    Differences
    Expression1Expression2Difference
    coneqVARIABLE_NAME_MISMATCH
    org.apache.tools.ant.taskdefs.condition.Containsorg.apache.tools.ant.taskdefs.condition.EqualsSUBCLASS_TYPE_MISMATCH
    4
    assertTrue(!eq.eval());
    5
    con.setCasesensitive(false);
    5
    con.setCasesensitive(false);
    5
    eq.setCasesensitive(false);
    Differences
    Expression1Expression2Difference
    coneqVARIABLE_NAME_MISMATCH
    org.apache.tools.ant.taskdefs.condition.Containsorg.apache.tools.ant.taskdefs.condition.EqualsSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression con cannot be unified with expression eq , because common superclass org.apache.tools.ant.taskdefs.condition.Condition does not declare member(s) public void setCasesensitive(boolean)
    5
    eq.setCasesensitive(false);
    6
    assertTrue(con.eval());
    6
    assertTrue(con.eval());
    6
    assertTrue(eq.eval());
    Differences
    Expression1Expression2Difference
    coneqVARIABLE_NAME_MISMATCH
    org.apache.tools.ant.taskdefs.condition.Containsorg.apache.tools.ant.taskdefs.condition.EqualsSUBCLASS_TYPE_MISMATCH
    6
    assertTrue(eq.eval());
    Precondition Violations (11)
    Row Violation
    1Expression con.setString("abc") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression eq.setArg1("a") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Expression con.setString("abc") is a void method call, and thus it cannot be parameterized
    4Expression eq.setArg1("a") is a void method call, and thus it cannot be parameterized
    5Expression con cannot be unified with expression eq , because common superclass org.apache.tools.ant.taskdefs.condition.Condition does not declare member(s) public void setString(java.lang.String) , public void setArg1(java.lang.String)
    6Expression con.setSubstring("A") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7Expression eq.setArg2("A") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    8Expression con.setSubstring("A") is a void method call, and thus it cannot be parameterized
    9Expression eq.setArg2("A") is a void method call, and thus it cannot be parameterized
    10Expression con cannot be unified with expression eq , because common superclass org.apache.tools.ant.taskdefs.condition.Condition does not declare member(s) public void setSubstring(java.lang.String) , public void setArg2(java.lang.String)
    11Expression con cannot be unified with expression eq , because common superclass org.apache.tools.ant.taskdefs.condition.Condition does not declare member(s) public void setCasesensitive(boolean)