XYSeriesCollection dataset = null; assertTrue(DatasetUtilities.isEmptyOrNull(dataset)); dataset = new XYSeriesCollection(); assertTrue(DatasetUtilities.isEmptyOrNull(dataset)); XYSeries s1 = new XYSeries("S1"); dataset.addSeries(s1); assertTrue(DatasetUtilities.isEmptyOrNull(dataset)); s1.add(1.0, 2.0); assertFalse(DatasetUtilities.isEmptyOrNull(dataset)); s1.clear(); assertTrue(DatasetUtilities.isEmptyOrNull(dataset));
SimpleHistogramDataset d1 = new SimpleHistogramDataset("Dataset 1"); SimpleHistogramDataset d2 = null; try { d2 = (SimpleHistogramDataset) d1.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } assertTrue(d1 != d2); assertTrue(d1.getClass() == d2.getClass()); assertTrue(d1.equals(d2)); // check that clone is independent of the original d2.addBin(new SimpleHistogramBin(2.0, 3.0)); d2.addObservation(2.3); assertFalse(d1.equals(d2));
Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/tests/org/jfree/data/general/junit/DatasetUtilitiesTests.java File path: /jfreechart-1.0.10/tests/org/jfree/data/statistics/junit/SimpleHistogramDatasetTests.java
Method name: void testIsEmptyOrNullXYDataset() Method name: void testCloning()
Number of AST nodes: 11 Number of AST nodes: 10
1
XYSeriesCollection dataset = null;
2
        assertTrue(DatasetUtilities.isEmptyOrNull(dataset));
1
SimpleHistogramDataset d1 = new SimpleHistogramDataset("Dataset 1");
3
        dataset = new XYSeriesCollection();
2
        SimpleHistogramDataset d2 = n
4
        assertTrue(DatasetUtilities.isEmptyOrNull(dataset));
5
        XYSeries s1 = new XYSeries("S1");
6
        dataset.addSeries(s1);
7
        assertTrue(DatasetUtilities.isEmptyOrNull(dataset));
8
        s1.add(1.0, 2.0
3
ull;
4
        try {
5
            d2 = (SimpleHistogramDataset) d1.clone();
6
        }
7
        catch (CloneNotSupportedException e) {
8
            e.printStackTrace();
9
        }
10
        assertTrue(d1 != d2);
11
        assertTrue(d1.getClass() == d2.getClass());
9
);
12
        assertTrue(d1.equals(d2));
10
   
13
        
11
     assertFalse(DatasetUtilities.isEmptyOrNull(dataset));
14
     
12
        s1.clear();
13
        assertTrue(DatasetUtilities.isEmptyOrNull(dataset
15
   // check that clone is independent of the original
16
        d2.addBin(new SimpleHistogramBin(2.0, 3.0));
17
        d2.addObservation(2.3);
14
));
18
        assertFalse(d1.equals(d2));
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 comparisons75
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements5
    Number of unmapped statements in the first code fragment6
    Number of unmapped statements in the second code fragment3
    Time elapsed for statement mapping (ms)0.0
    Clone typeType 3
    Mapped Statements
    ID Statement ID Statement
                                                                                                                                              
    1
    SimpleHistogramDataset d1 = new SimpleHistogramDataset("Dataset 1");
    Preondition Violations
    Unmatched statement SimpleHistogramDataset d1=new SimpleHistogramDataset("Dataset 1"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    1
    SimpleHistogramDataset d1 = new SimpleHistogramDataset("Dataset 1");
    1
    XYSeriesCollection dataset = null;
    1
    XYSeriesCollection dataset = null;
    2
    SimpleHistogramDataset d2 = null;
    Differences
    Expression1Expression2Difference
    org.jfree.data.xy.XYSeriesCollectionorg.jfree.data.statistics.SimpleHistogramDatasetSUBCLASS_TYPE_MISMATCH
    datasetd2VARIABLE_NAME_MISMATCH
    org.jfree.data.xy.XYSeriesCollectionorg.jfree.data.statistics.SimpleHistogramDatasetSUBCLASS_TYPE_MISMATCH
    2
    SimpleHistogramDataset d2 = null;
    2
    assertTrue(DatasetUtilities.isEmptyOrNull(dataset));
    2
    assertTrue(DatasetUtilities.isEmptyOrNull(dataset));
    6
    assertTrue(d1.getClass() == d2.getClass());
    Differences
    Expression1Expression2Difference
    DatasetUtilities.isEmptyOrNull(dataset)d1.getClass() == d2.getClass()TYPE_COMPATIBLE_REPLACEMENT
    Preondition Violations
    Expression DatasetUtilities.isEmptyOrNull(dataset) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression d1.getClass() == d2.getClass() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6
    assertTrue(d1.getClass() == d2.getClass());
    3
    dataset = new XYSeriesCollection();
    3
    dataset = new XYSeriesCollection();
    Preondition Violations
    Unmatched statement dataset=new XYSeriesCollection(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                            
    4
    assertTrue(DatasetUtilities.isEmptyOrNull(dataset));
    4
    assertTrue(DatasetUtilities.isEmptyOrNull(dataset));
    5
    assertTrue(d1 != d2);
    Differences
    Expression1Expression2Difference
    DatasetUtilities.isEmptyOrNull(dataset)d1 != d2TYPE_COMPATIBLE_REPLACEMENT
    Preondition Violations
    Expression DatasetUtilities.isEmptyOrNull(dataset) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression d1 != d2 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5
    assertTrue(d1 != d2);
    5
    XYSeries s1 = new XYSeries("S1");
    5
    XYSeries s1 = new XYSeries("S1");
    Preondition Violations
    Unmatched statement XYSeries s1=new XYSeries("S1"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
                                                                        
    6
    dataset.addSeries(s1);
    6
    dataset.addSeries(s1);
    Preondition Violations
    Unmatched statement dataset.addSeries(s1); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                      
    7
    assertTrue(DatasetUtilities.isEmptyOrNull(dataset));
    7
    assertTrue(DatasetUtilities.isEmptyOrNull(dataset));
    7
    assertTrue(d1.equals(d2));
    Differences
    Expression1Expression2Difference
    DatasetUtilities.isEmptyOrNull(dataset)d1.equals(d2)TYPE_COMPATIBLE_REPLACEMENT
    Preondition Violations
    Expression DatasetUtilities.isEmptyOrNull(dataset) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression d1.equals(d2) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7
    assertTrue(d1.equals(d2));
                                                                                                
    8
    d2.addBin(new SimpleHistogramBin(2.0, 3.0));
    Preondition Violations
    Unmatched statement d2.addBin(new SimpleHistogramBin(2.0,3.0)); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    8
    d2.addBin(new SimpleHistogramBin(2.0, 3.0));
    8
    s1.add(1.0, 2.0);
    8
    s1.add(1.0, 2.0);
    Preondition Violations
    Unmatched statement s1.add(1.0,2.0); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
                                          
                                                        
    9
    d2.addObservation(2.3);
    9
    assertFalse(DatasetUtilities.isEmptyOrNull(dataset));
    9
    assertFalse(DatasetUtilities.isEmptyOrNull(dataset));
    10
    assertFalse(d1.equals(d2));
    Differences
    Expression1Expression2Difference
    DatasetUtilities.isEmptyOrNull(dataset)d1.equals(d2)TYPE_COMPATIBLE_REPLACEMENT
    Preondition Violations
    Expression DatasetUtilities.isEmptyOrNull(dataset) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression d1.equals(d2) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    10
    assertFalse(d1.equals(d2));
    10
    s1.clear();
    10
    s1.clear();
    Preondition Violations
    Unmatched statement s1.clear(); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
                                  
    11
    assertTrue(DatasetUtilities.isEmptyOrNull(dataset));
                                                                                                                    
    Precondition Violations (16)
    Row Violation
    1Unmatched statement SimpleHistogramDataset d1=new SimpleHistogramDataset("Dataset 1"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    2Expression DatasetUtilities.isEmptyOrNull(dataset) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Expression d1.getClass() == d2.getClass() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Unmatched statement dataset=new XYSeriesCollection(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    5Expression DatasetUtilities.isEmptyOrNull(dataset) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6Expression d1 != d2 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7Unmatched statement XYSeries s1=new XYSeries("S1"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    8Unmatched statement dataset.addSeries(s1); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    9Expression DatasetUtilities.isEmptyOrNull(dataset) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    10Expression d1.equals(d2) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    11Unmatched statement d2.addBin(new SimpleHistogramBin(2.0,3.0)); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    12Unmatched statement s1.add(1.0,2.0); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    13Expression DatasetUtilities.isEmptyOrNull(dataset) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    14Expression d1.equals(d2) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    15Unmatched statement s1.clear(); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    16Clone fragment #1 returns variable dataset with type org.jfree.data.xy.XYSeriesCollection , while Clone fragment #2 returns variable d2 with type org.jfree.data.statistics.SimpleHistogramDataset