DefaultCategoryDataset d = new DefaultCategoryDataset(); d.addValue(1.0, "R1", "C1"); d.addValue(2.0, "R2", "C2"); assertEquals(2, d.getColumnCount()); d.removeColumn("C2"); assertEquals(1, d.getColumnCount()); boolean pass = false; try { d.removeColumn("XXX"); } catch (UnknownKeyException e) { pass = true; } assertTrue(pass); pass = false; try { d.removeColumn(null); } catch (IllegalArgumentException e) { pass = true; } assertTrue(pass);
KeyedObjects2D data = new KeyedObjects2D(); data.setObject("Obj1", "R1", "C1"); data.setObject("Obj2", "R2", "C2"); data.removeColumn("C2"); assertEquals(1, data.getColumnCount()); assertEquals("Obj1", data.getObject(0, 0)); // try unknown column key boolean pass = false; try { data.removeColumn("XXX"); } catch (UnknownKeyException e) { pass = true; } assertTrue(pass); // try null column key pass = false; try { data.removeColumn(null); } catch (IllegalArgumentException e) { pass = true; } assertTrue(pass);
Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/tests/org/jfree/data/category/junit/DefaultCategoryDatasetTests.java File path: /jfreechart-1.0.10/tests/org/jfree/data/junit/KeyedObjects2DTests.java
Method name: void testRemoveColumn() Method name: void testRemoveColumnByKey()
Number of AST nodes: 14 Number of AST nodes: 14
1
DefaultCategoryDataset d = new DefaultCategoryDataset();
2
        d.addValue(1.0
1
KeyedObjects2D data = new KeyedObjects2D();
3
, "R1", "C1");
2
        data.setObject("Obj1", "R1", "C1");
4
        d.addValue(2.0, "R2", "C2");
3
        data.setObject("Obj2", "R2", "C2");
4
        data.removeColumn("C2");
5
        assertEquals(2, d.getColumnCount());
5
        assertEquals(1, data.getColumnCount());
6
        d.removeColumn("C2");
6
        
7
        assertEquals(1, d.getColumnCount());
7
assertEquals("Obj1", data.getObject(0, 0));
8
        
9
        // try unknown column key
8
        boolean pass = false;
10
        boolean pass = false;
9
        try {
11
        try {
10
            d.removeColumn("XXX");
12
            data.removeColumn("XXX");
11
        }
13
        }
12
        catch (UnknownKeyException e) {
14
        catch (UnknownKeyException e) {
13
            pass = true;
15
            pass = true;
14
        }
16
        }
15
        assertTrue(pass);
17
        assertTrue(pass);
18
        
19
        // try null column key
16
        pass = false;
20
        pass = false;
17
        try {
21
        try {
18
            d.removeColumn(null);
22
            data.removeColumn(null);
19
        }
23
        }
20
        catch (IllegalArgumentException e) {
24
        catch (IllegalArgumentException e) {
21
            pass = true;
25
            pass = true;
22
        }
26
        }
23
        assertTrue(pass);
27
        assertTrue(pass);
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.3
Clones locationClones are in different classes having the same super class
Number of node comparisons73
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements10
    Number of unmapped statements in the first code fragment4
    Number of unmapped statements in the second code fragment4
    Time elapsed for statement mapping (ms)11.2
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
                                                                                            
    1
    KeyedObjects2D data = new KeyedObjects2D();
    Preondition Violations
    Unmatched statement KeyedObjects2D data=new KeyedObjects2D(); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    1
    KeyedObjects2D data = new KeyedObjects2D();
    1
    DefaultCategoryDataset d = new DefaultCategoryDataset();
    1
    DefaultCategoryDataset d = new DefaultCategoryDataset();
    Preondition Violations
    Unmatched statement DefaultCategoryDataset d=new DefaultCategoryDataset(); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
                                                                                                                      
                                                                            
    2
    data.setObject("Obj1", "R1", "C1");
    Preondition Violations
    Unmatched statement data.setObject("Obj1","R1","C1"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    2
    data.setObject("Obj1", "R1", "C1");
    2
    d.addValue(1.0, "R1", "C1");
    2
    d.addValue(1.0, "R1", "C1");
    Preondition Violations
    Unmatched statement d.addValue(1.0,"R1","C1"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
                                                              
                                                                            
    3
    data.setObject("Obj2", "R2", "C2");
    Preondition Violations
    Unmatched statement data.setObject("Obj2","R2","C2"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    3
    data.setObject("Obj2", "R2", "C2");
    3
    d.addValue(2.0, "R2", "C2");
    3
    d.addValue(2.0, "R2", "C2");
    Preondition Violations
    Unmatched statement d.addValue(2.0,"R2","C2"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
                                                              
    4
    assertEquals(2, d.getColumnCount());
                                                                                
    5
    d.removeColumn("C2");
    5
    d.removeColumn("C2");
    4
    data.removeColumn("C2");
    Differences
    Expression1Expression2Difference
    ddataVARIABLE_NAME_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.KeyedObjects2DVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.jfree.data.category.DefaultCategoryDataset of variable d does not match with type org.jfree.data.KeyedObjects2D of variable data
    • Make classes org.jfree.data.category.DefaultCategoryDataset and org.jfree.data.KeyedObjects2D extend a common superclass
    4
    data.removeColumn("C2");
    6
    assertEquals(1, d.getColumnCount());
    6
    assertEquals(1, d.getColumnCount());
    5
    assertEquals(1, data.getColumnCount());
    Differences
    Expression1Expression2Difference
    ddataVARIABLE_NAME_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.KeyedObjects2DVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.jfree.data.category.DefaultCategoryDataset of variable d does not match with type org.jfree.data.KeyedObjects2D of variable data
    • Make classes org.jfree.data.category.DefaultCategoryDataset and org.jfree.data.KeyedObjects2D extend a common superclass
    5
    assertEquals(1, data.getColumnCount());
                                                                                            
    6
    assertEquals("Obj1", data.getObject(0, 0));
    Preondition Violations
    Unmatched statement assertEquals("Obj1",data.getObject(0,0)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    6
    assertEquals("Obj1", data.getObject(0, 0));
    7
    boolean pass = false;
    7
    boolean pass = false;
    8
    try
    8
    try
    9
    d.removeColumn("XXX");
    9
    d.removeColumn("XXX");
    9
    data.removeColumn("XXX");
    Differences
    Expression1Expression2Difference
    ddataVARIABLE_NAME_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.KeyedObjects2DVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.jfree.data.category.DefaultCategoryDataset of variable d does not match with type org.jfree.data.KeyedObjects2D of variable data
    • Make classes org.jfree.data.category.DefaultCategoryDataset and org.jfree.data.KeyedObjects2D extend a common superclass
    9
    data.removeColumn("XXX");
    10
    assertTrue(pass);
    10
    assertTrue(pass);
    11
    pass = false;
    11
    pass = false;
    12
    try
    12
    try
    13
    d.removeColumn(null);
    13
    d.removeColumn(null);
    13
    data.removeColumn(null);
    Differences
    Expression1Expression2Difference
    ddataVARIABLE_NAME_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.KeyedObjects2DVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.jfree.data.category.DefaultCategoryDataset of variable d does not match with type org.jfree.data.KeyedObjects2D of variable data
    • Make classes org.jfree.data.category.DefaultCategoryDataset and org.jfree.data.KeyedObjects2D extend a common superclass
    13
    data.removeColumn(null);
    14
    assertTrue(pass);
    14
    assertTrue(pass);
    Precondition Violations (11)
    Row Violation
    1Unmatched statement KeyedObjects2D data=new KeyedObjects2D(); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    2Unmatched statement DefaultCategoryDataset d=new DefaultCategoryDataset(); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    3Unmatched statement data.setObject("Obj1","R1","C1"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    4Unmatched statement d.addValue(1.0,"R1","C1"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    5Unmatched statement data.setObject("Obj2","R2","C2"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    6Unmatched statement d.addValue(2.0,"R2","C2"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    7Type org.jfree.data.category.DefaultCategoryDataset of variable d does not match with type org.jfree.data.KeyedObjects2D of variable data
    8Type org.jfree.data.category.DefaultCategoryDataset of variable d does not match with type org.jfree.data.KeyedObjects2D of variable data
    9Unmatched statement assertEquals("Obj1",data.getObject(0,0)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    10Type org.jfree.data.category.DefaultCategoryDataset of variable d does not match with type org.jfree.data.KeyedObjects2D of variable data
    11Type org.jfree.data.category.DefaultCategoryDataset of variable d does not match with type org.jfree.data.KeyedObjects2D of variable data