String result = "@test@ line testvalue"; String line = "@test@ line @test3@"; FilterSet fs = new FilterSet(); fs.addFilter("test", "@test1@"); fs.addFilter("test1","@test2@"); fs.addFilter("test2", "@test@"); fs.addFilter("test3", "testvalue"); fs.setBeginToken("@"); fs.setEndToken("@"); assertEquals(result, fs.replaceTokens(line));
FilterSet filters = new FilterSet(); filters.setBeginToken("<"); filters.setEndToken(">"); filters.addFilter("ul", "<itemizedlist>"); filters.addFilter("/ul", "</itemizedList>"); filters.addFilter("li", "<listitem>"); filters.addFilter("/li", "</listitem>"); String result = "<itemizedlist><listitem>Item 1</listitem> <listitem>Item 2</listitem></itemizedList>"; String line = "<ul><li>Item 1</li> <li>Item 2</li></ul>"; assertEquals(result, filters.replaceTokens(line));
Clone fragments detected by clone detection tool
File path: /apache-ant-1.7.0/src/tests/junit/org/apache/tools/ant/types/FilterSetTest.java File path: /apache-ant-1.7.0/src/tests/junit/org/apache/tools/ant/types/FilterSetTest.java
Method name: void testInfinite() Method name: void testNonInfiniteRecursiveMultipleOnSingleLine()
Number of AST nodes: 10 Number of AST nodes: 10
1
String result = "@test@ line testvalue";
2
        String line = "@test@ line @test3@"
1
FilterSet filters = new FilterSet();
3
;
2
        filters.setBeginToken("<");
4
        FilterSet fs = new FilterSet();
3
        filters.setEndToken(">");
5
        fs.addFilter("test", "@test1@");
4
        filters.addFilter("ul", "<itemizedlist>");
6
        fs.addFilter("test1","@test2@");
5
        filters.addFilter("/ul", "</itemizedList>");
7
        fs.addFilter("test2", "@test@");
6
        filters.addFilter("li", "<listitem>");
8
        fs.addFilter("test3", "testvalue");
7
        filters.addFilter("/li", "</listitem>");
9
        fs.setBeginToken("@");
8
        
10
        fs.setEndToken("@");
9
String result = "<itemizedlist><listitem>Item 1</listitem> <listitem>Item 2</listitem></itemizedList>";
10
        String line = "<ul><li>Item 1</li> <li>Item 2</li></ul>";
11
        assertEquals(result, fs.replaceTokens(line));
11
        assertEquals(result, filters.replaceTokens(line));
Summary
Number of common nesting structure subtrees1
Number of refactorable cases1
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.0
Clones locationClones are declared in the same class
Number of node comparisons68
  1. {Refactorable}
    Mapping Summary
    Number of mapped statements10
    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
    String result = "@test@ line testvalue";
    1
    String result = "@test@ line testvalue";
    8
    String result = "<itemizedlist><listitem>Item 1</listitem> <listitem>Item 2</listitem></itemizedList>";
    Differences
    Expression1Expression2Difference
    "@test@ line testvalue""Item 1 Item 2"LITERAL_VALUE_MISMATCH
    8
    String result = "<itemizedlist><listitem>Item 1</listitem> <listitem>Item 2</listitem></itemizedList>";
    2
    String line = "@test@ line @test3@";
    2
    String line = "@test@ line @test3@";
    9
    String line = "<ul><li>Item 1</li> <li>Item 2</li></ul>";
    Differences
    Expression1Expression2Difference
    "@test@ line @test3@""
    • Item 1
    • Item 2
    "
    LITERAL_VALUE_MISMATCH
    9
    String line = "<ul><li>Item 1</li> <li>Item 2</li></ul>";
    3
    FilterSet fs = new FilterSet();
    3
    FilterSet fs = new FilterSet();
    1
    FilterSet filters = new FilterSet();
    Differences
    Expression1Expression2Difference
    fsfiltersVARIABLE_NAME_MISMATCH
    1
    FilterSet filters = new FilterSet();
    4
    fs.addFilter("test", "@test1@");
    4
    fs.addFilter("test", "@test1@");
    4
    filters.addFilter("ul", "<itemizedlist>");
    Differences
    Expression1Expression2Difference
    "test""ul"LITERAL_VALUE_MISMATCH
    "@test1@"""LITERAL_VALUE_MISMATCH
    fsfiltersVARIABLE_NAME_MISMATCH
    4
    filters.addFilter("ul", "<itemizedlist>");
    5
    fs.addFilter("test1", "@test2@");
    5
    fs.addFilter("test1", "@test2@");
    5
    filters.addFilter("/ul", "</itemizedList>");
    Differences
    Expression1Expression2Difference
    "test1""/ul"LITERAL_VALUE_MISMATCH
    "@test2@"""LITERAL_VALUE_MISMATCH
    fsfiltersVARIABLE_NAME_MISMATCH
    5
    filters.addFilter("/ul", "</itemizedList>");
    6
    fs.addFilter("test2", "@test@");
    6
    fs.addFilter("test2", "@test@");
    6
    filters.addFilter("li", "<listitem>");
    Differences
    Expression1Expression2Difference
    "test2""li"LITERAL_VALUE_MISMATCH
    "@test@"""LITERAL_VALUE_MISMATCH
    fsfiltersVARIABLE_NAME_MISMATCH
    6
    filters.addFilter("li", "<listitem>");
    7
    fs.addFilter("test3", "testvalue");
    7
    fs.addFilter("test3", "testvalue");
    7
    filters.addFilter("/li", "</listitem>");
    Differences
    Expression1Expression2Difference
    "test3""/li"LITERAL_VALUE_MISMATCH
    "testvalue"""LITERAL_VALUE_MISMATCH
    fsfiltersVARIABLE_NAME_MISMATCH
    7
    filters.addFilter("/li", "</listitem>");
    8
    fs.setBeginToken("@");
    8
    fs.setBeginToken("@");
    2
    filters.setBeginToken("<");
    Differences
    Expression1Expression2Difference
    "@""<"LITERAL_VALUE_MISMATCH
    fsfiltersVARIABLE_NAME_MISMATCH
    2
    filters.setBeginToken("<");
    9
    fs.setEndToken("@");
    9
    fs.setEndToken("@");
    3
    filters.setEndToken(">");
    Differences
    Expression1Expression2Difference
    "@"">"LITERAL_VALUE_MISMATCH
    fsfiltersVARIABLE_NAME_MISMATCH
    3
    filters.setEndToken(">");
    10
    assertEquals(result, fs.replaceTokens(line));
    10
    assertEquals(result, fs.replaceTokens(line));
    10
    assertEquals(result, filters.replaceTokens(line));
    Differences
    Expression1Expression2Difference
    fsfiltersVARIABLE_NAME_MISMATCH
    10
    assertEquals(result, filters.replaceTokens(line));
    Precondition Violations (0)
    Row Violation