TableXYDataset dataset = RendererXYPackageTests.createTestTableXYDataset(); JFreeChart chart = ChartFactory.createStackedXYAreaChart( "Test Chart", "X", "Y", dataset, PlotOrientation.VERTICAL, false, false, false); XYPlot plot = (XYPlot) chart.getPlot(); StackedXYAreaRenderer2 renderer = new StackedXYAreaRenderer2(); plot.setRenderer(renderer); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); Range bounds = rangeAxis.getRange(); assertTrue(bounds.contains(6.0)); assertTrue(bounds.contains(8.0)); // try null argument assertNull(renderer.findRangeBounds(null)); // try empty dataset assertNull(renderer.findRangeBounds(new DefaultTableXYDataset()));
XYSeriesCollection dataset = RendererXYPackageTests.createTestXYSeriesCollection(); JFreeChart chart = ChartFactory.createXYBarChart("Test Chart", "X", false, "Y", dataset, PlotOrientation.VERTICAL, false, false, false); XYPlot plot = (XYPlot) chart.getPlot(); NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis(); domainAxis.setAutoRangeIncludesZero(false); Range bounds = domainAxis.getRange(); assertFalse(bounds.contains(0.3)); assertTrue(bounds.contains(0.5)); assertTrue(bounds.contains(2.5)); assertFalse(bounds.contains(2.8));
Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/tests/org/jfree/chart/renderer/xy/junit/StackedXYAreaRenderer2Tests.java File path: /jfreechart-1.0.10/tests/org/jfree/chart/renderer/xy/junit/XYBarRendererTests.java
Method name: void testFindRangeBounds() Method name: void testFindDomainBounds()
Number of AST nodes: 11 Number of AST nodes: 10
1
TableXYDataset dataset
1
XYSeriesCollection dataset
2
                = RendererXYPackageTests.createTestTableXYDataset();
2
                = RendererXYPackageTests.createTestXYSeriesCollection();
3
        JFreeChart chart = ChartFactory.createStackedXYAreaChart(
3
        JFreeChart chart = ChartFactory.create
4
                "Test Chart", "X"
4
XYBarChart("Test Chart", "X",
5
, "Y", dataset, PlotOrientation.VERTICAL,
5
                false, "Y", dataset, PlotOrientation.VERTICAL, false, false,
6
                false, false, false);
6
                false);
7
        XYPlot plot = (XYPlot) chart.getPlot();
7
        XYPlot plot = (XYPlot) chart.getPlot();
8
        StackedXYAreaRenderer2 renderer = new StackedXYAreaRenderer2();
9
        plot.setRenderer(renderer);
10
        NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
8
        NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis();
9
        domainAxis.setAutoRangeIncludesZero(false);
11
        Range bounds = rangeAxis.getRange();
10
        Range bounds = domainAxis.getRange();
12
        assertTrue(bounds.contains(6.0));
11
        assertFalse(bounds.contains(0.3));
13
        assertTrue(bounds.contains(8.0));
12
        assertTrue(bounds.contains(
14
        // try null argument
15
        assertNull(renderer.findRangeBounds(null));
16
        // try empty dataset
17
        assertNull(renderer.findRangeBounds(new DefaultTableXYDataset()
13
0.5));
14
        assertTrue(bounds.contains(2.5));
18
));
15
        assertFalse(bounds.contains(2.8));
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 comparisons94
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements7
    Number of unmapped statements in the first code fragment4
    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
    TableXYDataset dataset = RendererXYPackageTests.createTestTableXYDataset();
    1
    TableXYDataset dataset = RendererXYPackageTests.createTestTableXYDataset();
    1
    XYSeriesCollection dataset = RendererXYPackageTests.createTestXYSeriesCollection();
    Differences
    Expression1Expression2Difference
    org.jfree.data.xy.TableXYDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.data.xy.TableXYDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    createTestTableXYDatasetcreateTestXYSeriesCollectionMETHOD_INVOCATION_NAME_MISMATCH
    1
    XYSeriesCollection dataset = RendererXYPackageTests.createTestXYSeriesCollection();
    2
    JFreeChart chart = ChartFactory.createStackedXYAreaChart("Test Chart", "X", "Y", dataset, PlotOrientation.VERTICAL, false, false, false);
    2
    JFreeChart chart = ChartFactory.createStackedXYAreaChart("Test Chart", "X", "Y", dataset, PlotOrientation.VERTICAL, false, false, false);
    2
    JFreeChart chart = ChartFactory.createXYBarChart("Test Chart", "X", false, "Y", dataset, PlotOrientation.VERTICAL, false, false, false);
    Differences
    Expression1Expression2Difference
    createStackedXYAreaChartcreateXYBarChartMETHOD_INVOCATION_NAME_MISMATCH
    ChartFactory.createStackedXYAreaChart("Test Chart","X","Y",dataset,PlotOrientation.VERTICAL,false,false,false)ChartFactory.createXYBarChart("Test Chart","X",false,"Y",dataset,PlotOrientation.VERTICAL,false,false,false)ARGUMENT_NUMBER_MISMATCH
    Preondition Violations
    Expression ChartFactory.createStackedXYAreaChart("Test Chart","X","Y",dataset,PlotOrientation.VERTICAL,false,false,false) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression ChartFactory.createXYBarChart("Test Chart","X",false,"Y",dataset,PlotOrientation.VERTICAL,false,false,false) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression ChartFactory.createStackedXYAreaChart("Test Chart","X","Y",dataset,PlotOrientation.VERTICAL,false,false,false) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression ChartFactory.createXYBarChart("Test Chart","X",false,"Y",dataset,PlotOrientation.VERTICAL,false,false,false) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2
    JFreeChart chart = ChartFactory.createXYBarChart("Test Chart", "X", false, "Y", dataset, PlotOrientation.VERTICAL, false, false, false);
    3
    XYPlot plot = (XYPlot)chart.getPlot();
    3
    XYPlot plot = (XYPlot)chart.getPlot();
    4
    StackedXYAreaRenderer2 renderer = new StackedXYAreaRenderer2();
    4
    StackedXYAreaRenderer2 renderer = new StackedXYAreaRenderer2();
    4
    NumberAxis domainAxis = (NumberAxis)plot.getDomainAxis();
    Differences
    Expression1Expression2Difference
    org.jfree.chart.renderer.xy.StackedXYAreaRenderer2org.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    rendererdomainAxisVARIABLE_NAME_MISMATCH
    org.jfree.chart.renderer.xy.StackedXYAreaRenderer2org.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.renderer.xy.StackedXYAreaRenderer2org.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    new StackedXYAreaRenderer2()(NumberAxis)plot.getDomainAxis()TYPE_COMPATIBLE_REPLACEMENT
    Preondition Violations
    Expression new StackedXYAreaRenderer2() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (NumberAxis)plot.getDomainAxis() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4
    NumberAxis domainAxis = (NumberAxis)plot.getDomainAxis();
                                                                                                
    5
    domainAxis.setAutoRangeIncludesZero(false);
    Preondition Violations
    Unmatched statement domainAxis.setAutoRangeIncludesZero(false); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    5
    domainAxis.setAutoRangeIncludesZero(false);
    5
    plot.setRenderer(renderer);
    5
    plot.setRenderer(renderer);
    Preondition Violations
    Unmatched statement plot.setRenderer(renderer); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                
    6
    NumberAxis rangeAxis = (NumberAxis)plot.getRangeAxis();
    6
    NumberAxis rangeAxis = (NumberAxis)plot.getRangeAxis();
    Preondition Violations
    Unmatched statement NumberAxis rangeAxis=(NumberAxis)plot.getRangeAxis(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                                                                    
    7
    Range bounds = rangeAxis.getRange();
    7
    Range bounds = rangeAxis.getRange();
    6
    Range bounds = domainAxis.getRange();
    Differences
    Expression1Expression2Difference
    rangeAxisdomainAxisVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression rangeAxis cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression domainAxis cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6
    Range bounds = domainAxis.getRange();
    8
    assertTrue(bounds.contains(6.0));
    8
    assertTrue(bounds.contains(6.0));
    7
    assertFalse(bounds.contains(0.3));
    Differences
    Expression1Expression2Difference
    6.00.3LITERAL_VALUE_MISMATCH
    assertTrueassertFalseMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression assertTrue(bounds.contains(6.0)) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression assertFalse(bounds.contains(0.3)) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression assertTrue(bounds.contains(6.0)) is a void method call, and thus it cannot be parameterized
    Expression assertFalse(bounds.contains(0.3)) is a void method call, and thus it cannot be parameterized
    7
    assertFalse(bounds.contains(0.3));
                                                                            
    8
    assertTrue(bounds.contains(0.5));
    Preondition Violations
    Unmatched statement assertTrue(bounds.contains(0.5)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    8
    assertTrue(bounds.contains(0.5));
    9
    assertTrue(bounds.contains(8.0));
    9
    assertTrue(bounds.contains(8.0));
    9
    assertTrue(bounds.contains(2.5));
    Differences
    Expression1Expression2Difference
    8.02.5LITERAL_VALUE_MISMATCH
    9
    assertTrue(bounds.contains(2.5));
                                                                                
    10
    assertFalse(bounds.contains(2.8));
    Preondition Violations
    Unmatched statement assertFalse(bounds.contains(2.8)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    10
    assertFalse(bounds.contains(2.8));
    10
    assertNull(renderer.findRangeBounds(null));
    10
    assertNull(renderer.findRangeBounds(null));
    Preondition Violations
    Unmatched statement assertNull(renderer.findRangeBounds(null)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                                                  
    11
    assertNull(renderer.findRangeBounds(new DefaultTableXYDataset()));
    11
    assertNull(renderer.findRangeBounds(new DefaultTableXYDataset()));
    Preondition Violations
    Unmatched statement assertNull(renderer.findRangeBounds(new DefaultTableXYDataset())); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                                                                                                
    Precondition Violations (20)
    Row Violation
    1Expression ChartFactory.createStackedXYAreaChart("Test Chart","X","Y",dataset,PlotOrientation.VERTICAL,false,false,false) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression ChartFactory.createXYBarChart("Test Chart","X",false,"Y",dataset,PlotOrientation.VERTICAL,false,false,false) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Expression ChartFactory.createStackedXYAreaChart("Test Chart","X","Y",dataset,PlotOrientation.VERTICAL,false,false,false) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Expression ChartFactory.createXYBarChart("Test Chart","X",false,"Y",dataset,PlotOrientation.VERTICAL,false,false,false) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5Expression new StackedXYAreaRenderer2() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6Expression (NumberAxis)plot.getDomainAxis() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7Unmatched statement domainAxis.setAutoRangeIncludesZero(false); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    8Unmatched statement plot.setRenderer(renderer); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    9Unmatched statement NumberAxis rangeAxis=(NumberAxis)plot.getRangeAxis(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    10Expression rangeAxis cannot be parameterized, because it has dependencies to/from statements that will be extracted
    11Expression domainAxis cannot be parameterized, because it has dependencies to/from statements that will be extracted
    12Expression assertTrue(bounds.contains(6.0)) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    13Expression assertFalse(bounds.contains(0.3)) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    14Expression assertTrue(bounds.contains(6.0)) is a void method call, and thus it cannot be parameterized
    15Expression assertFalse(bounds.contains(0.3)) is a void method call, and thus it cannot be parameterized
    16Unmatched statement assertTrue(bounds.contains(0.5)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    17Unmatched statement assertFalse(bounds.contains(2.8)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    18Unmatched statement assertNull(renderer.findRangeBounds(null)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    19Unmatched statement assertNull(renderer.findRangeBounds(new DefaultTableXYDataset())); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    20Clone fragment #1 returns variables plot, renderer , while Clone fragment #2 returns variables domainAxis, bounds