MyDateAxis axis = new MyDateAxis("Year"); Year y2006 = new Year(2006); Year y2007 = new Year(2007); // five dates to check... Date d0 = new Date(y2006.getFirstMillisecond()); Date d1 = new Date(y2006.getFirstMillisecond() + 500L); Date d2 = new Date(y2006.getMiddleMillisecond()); Date d3 = new Date(y2006.getMiddleMillisecond() + 500L); Date d4 = new Date(y2006.getLastMillisecond()); Date end = new Date(y2007.getLastMillisecond()); DateTickUnit unit = new DateTickUnit(DateTickUnit.YEAR, 10); axis.setTickUnit(unit); // START: check d0 and d1 axis.setTickMarkPosition(DateTickMarkPosition.START); axis.setRange(d0, end); Date psd = axis.previousStandardDate(d0, unit); Date nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d0.getTime()); assertTrue(nsd.getTime() >= d0.getTime()); axis.setRange(d1, end); psd = axis.previousStandardDate(d1, unit); nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d1.getTime()); assertTrue(nsd.getTime() >= d1.getTime()); // MIDDLE: check d1, d2 and d3 axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE); axis.setRange(d1, end); psd = axis.previousStandardDate(d1, unit); nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d1.getTime()); assertTrue(nsd.getTime() >= d1.getTime()); axis.setRange(d2, end); psd = axis.previousStandardDate(d2, unit); nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d2.getTime()); assertTrue(nsd.getTime() >= d2.getTime()); axis.setRange(d3, end); psd = axis.previousStandardDate(d3, unit); nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d3.getTime()); assertTrue(nsd.getTime() >= d3.getTime()); // END: check d3 and d4 axis.setTickMarkPosition(DateTickMarkPosition.END); axis.setRange(d3, end); psd = axis.previousStandardDate(d3, unit); nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d3.getTime()); assertTrue(nsd.getTime() >= d3.getTime()); axis.setRange(d4, end); psd = axis.previousStandardDate(d4, unit); nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d4.getTime()); assertTrue(nsd.getTime() >= d4.getTime());
MyDateAxis axis = new MyDateAxis("Month"); Month nov2006 = new Month(11, 2006); Month dec2006 = new Month(12, 2006); // five dates to check... Date d0 = new Date(nov2006.getFirstMillisecond()); Date d1 = new Date(nov2006.getFirstMillisecond() + 500L); Date d2 = new Date(nov2006.getMiddleMillisecond()); Date d3 = new Date(nov2006.getMiddleMillisecond() + 500L); Date d4 = new Date(nov2006.getLastMillisecond()); Date end = new Date(dec2006.getLastMillisecond()); DateTickUnit unit = new DateTickUnit(DateTickUnit.MONTH, 1); axis.setTickUnit(unit); // START: check d0 and d1 axis.setTickMarkPosition(DateTickMarkPosition.START); axis.setRange(d0, end); Date psd = axis.previousStandardDate(d0, unit); Date nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d0.getTime()); assertTrue(nsd.getTime() >= d0.getTime()); axis.setRange(d1, end); psd = axis.previousStandardDate(d1, unit); nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d1.getTime()); assertTrue(nsd.getTime() >= d1.getTime()); // MIDDLE: check d1, d2 and d3 axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE); axis.setRange(d1, end); psd = axis.previousStandardDate(d1, unit); nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d1.getTime()); assertTrue(nsd.getTime() >= d1.getTime()); axis.setRange(d2, end); psd = axis.previousStandardDate(d2, unit); nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d2.getTime()); assertTrue(nsd.getTime() >= d2.getTime()); axis.setRange(d3, end); psd = axis.previousStandardDate(d3, unit); nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d3.getTime()); assertTrue(nsd.getTime() >= d3.getTime()); // END: check d3 and d4 axis.setTickMarkPosition(DateTickMarkPosition.END); axis.setRange(d3, end); psd = axis.previousStandardDate(d3, unit); nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d3.getTime()); assertTrue(nsd.getTime() >= d3.getTime()); axis.setRange(d4, end); psd = axis.previousStandardDate(d4, unit); nsd = unit.addToDate(psd); assertTrue(psd.getTime() < d4.getTime()); assertTrue(nsd.getTime() >= d4.getTime());
Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/tests/org/jfree/chart/axis/junit/DateAxisTests.java File path: /jfreechart-1.0.10/tests/org/jfree/chart/axis/junit/DateAxisTests.java
Method name: void testPreviousStandardDateYearB() Method name: void testPreviousStandardDateMonthA()
Number of AST nodes: 49 Number of AST nodes: 49
1
MyDateAxis axis = new MyDateAxis("Year");
1
MyDateAxis axis = new MyDateAxis("Month");
2
        Year y2006 = new Year(2006);
2
        Month nov2006 = new Month(11, 2006);
3
        Year y2007 = new Year(2007);
3
        Month dec2006 = new Month(12, 2006);
4
        
4
        
5
        // five dates to check...
5
        // five dates to check...
6
        Date d0 = new Date(y2006.getFirstMillisecond());
6
        Date d0 = new Date(nov2006.getFirstMillisecond());
7
        Date d1 = new Date(y2006.getFirstMillisecond() + 500L);
7
        Date d1 = new Date(nov2006.getFirstMillisecond() + 500L);
8
        Date d2 = new Date(y2006.getMiddleMillisecond());
8
        Date d2 = new Date(nov2006.getMiddleMillisecond());
9
        Date d3 = new Date(y2006.getMiddleMillisecond() + 500L);
9
        Date d3 = new Date(nov2006.getMiddleMillisecond() + 500L);
10
        Date d4 = new Date(y2006.getLastMillisecond());
10
        Date d4 = new Date(nov2006.getLastMillisecond());
11
        
11
        
12
        Date end = new Date(y2007.getLastMillisecond());
12
        Date end = new Date(dec2006.getLastMillisecond());
13
        
13
        
14
        DateTickUnit unit = new DateTickUnit(DateTickUnit.YEAR, 10);
14
        DateTickUnit unit = new DateTickUnit(DateTickUnit.MONTH, 1);
15
        axis.setTickUnit(unit);
15
        axis.setTickUnit(unit);
16
        // START: check d0 and d1
16
        // START: check d0 and d1
17
        axis.setTickMarkPosition(DateTickMarkPosition.START);
17
        axis.setTickMarkPosition(DateTickMarkPosition.START);
18
        axis.setRange(d0, end);
18
        axis.setRange(d0, end);
19
        Date psd = axis.previousStandardDate(d0, unit);
19
        Date psd = axis.previousStandardDate(d0, unit);
20
        Date nsd = unit.addToDate(psd);
20
        Date nsd = unit.addToDate(psd);
21
        assertTrue(psd.getTime() < d0.getTime());
21
        assertTrue(psd.getTime() < d0.getTime());
22
        assertTrue(nsd.getTime() >= d0.getTime());
22
        assertTrue(nsd.getTime() >= d0.getTime());
23
        axis.setRange(d1, end);
23
        axis.setRange(d1, end);
24
        psd = axis.previousStandardDate(d1, unit);
24
        psd = axis.previousStandardDate(d1, unit);
25
        nsd = unit.addToDate(psd);
25
        nsd = unit.addToDate(psd);
26
        assertTrue(psd.getTime() < d1.getTime());
26
        assertTrue(psd.getTime() < d1.getTime());
27
        assertTrue(nsd.getTime() >= d1.getTime());
27
        assertTrue(nsd.getTime() >= d1.getTime());
28
        // MIDDLE: check d1, d2 and d3
28
        // MIDDLE: check d1, d2 and d3
29
        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
29
        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
30
        
30
        
31
        axis.setRange(d1, end);
31
        axis.setRange(d1, end);
32
        psd = axis.previousStandardDate(d1, unit);
32
        psd = axis.previousStandardDate(d1, unit);
33
        nsd = unit.addToDate(psd);
33
        nsd = unit.addToDate(psd);
34
        assertTrue(psd.getTime() < d1.getTime());
34
        assertTrue(psd.getTime() < d1.getTime());
35
        assertTrue(nsd.getTime() >= d1.getTime());
35
        assertTrue(nsd.getTime() >= d1.getTime());
36
        
36
        
37
        axis.setRange(d2, end);
37
        axis.setRange(d2, end);
38
        psd = axis.previousStandardDate(d2, unit);
38
        psd = axis.previousStandardDate(d2, unit);
39
        nsd = unit.addToDate(psd);
39
        nsd = unit.addToDate(psd);
40
        assertTrue(psd.getTime() < d2.getTime());
40
        assertTrue(psd.getTime() < d2.getTime());
41
        assertTrue(nsd.getTime() >= d2.getTime());
41
        assertTrue(nsd.getTime() >= d2.getTime());
42
        axis.setRange(d3, end);
42
        axis.setRange(d3, end);
43
        psd = axis.previousStandardDate(d3, unit);
43
        psd = axis.previousStandardDate(d3, unit);
44
        nsd = unit.addToDate(psd);
44
        nsd = unit.addToDate(psd);
45
        assertTrue(psd.getTime() < d3.getTime());
45
        assertTrue(psd.getTime() < d3.getTime());
46
        assertTrue(nsd.getTime() >= d3.getTime());
46
        assertTrue(nsd.getTime() >= d3.getTime());
47
        // END: check d3 and d4
47
        // END: check d3 and d4
48
        axis.setTickMarkPosition(DateTickMarkPosition.END);
48
        axis.setTickMarkPosition(DateTickMarkPosition.END);
49
        
49
        
50
        axis.setRange(d3, end);
50
        axis.setRange(d3, end);
51
        psd = axis.previousStandardDate(d3, unit);
51
        psd = axis.previousStandardDate(d3, unit);
52
        nsd = unit.addToDate(psd);
52
        nsd = unit.addToDate(psd);
53
        assertTrue(psd.getTime() < d3.getTime());
53
        assertTrue(psd.getTime() < d3.getTime());
54
        assertTrue(nsd.getTime() >= d3.getTime());
54
        assertTrue(nsd.getTime() >= d3.getTime());
55
        
55
        
56
        axis.setRange(d4, end);
56
        axis.setRange(d4, end);
57
        psd = axis.previousStandardDate(d4, unit);
57
        psd = axis.previousStandardDate(d4, unit);
58
        nsd = unit.addToDate(psd);
58
        nsd = unit.addToDate(psd);
59
        assertTrue(psd.getTime() < d4.getTime());
59
        assertTrue(psd.getTime() < d4.getTime());
60
        assertTrue(nsd.getTime() >= d4.getTime());
60
        assertTrue(nsd.getTime() >= d4.getTime());
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 comparisons765
  1. {Refactorable}
    Mapping Summary
    Number of mapped statements49
    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
    MyDateAxis axis = new MyDateAxis("Year");
    1
    MyDateAxis axis = new MyDateAxis("Year");
    1
    MyDateAxis axis = new MyDateAxis("Month");
    Differences
    Expression1Expression2Difference
    "Year""Month"LITERAL_VALUE_MISMATCH
    1
    MyDateAxis axis = new MyDateAxis("Month");
    2
    Year y2006 = new Year(2006);
    2
    Year y2006 = new Year(2006);
    2
    Month nov2006 = new Month(11, 2006);
    Differences
    Expression1Expression2Difference
    org.jfree.data.time.Yearorg.jfree.data.time.MonthSUBCLASS_TYPE_MISMATCH
    y2006nov2006VARIABLE_NAME_MISMATCH
    org.jfree.data.time.Yearorg.jfree.data.time.MonthSUBCLASS_TYPE_MISMATCH
    org.jfree.data.time.Yearorg.jfree.data.time.MonthSUBCLASS_TYPE_MISMATCH
    new Year(2006)new Month(11,2006)ARGUMENT_NUMBER_MISMATCH
    Preondition Violations
    Expression new Year(2006) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new Month(11,2006) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new Year(2006) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new Month(11,2006) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2
    Month nov2006 = new Month(11, 2006);
    3
    Year y2007 = new Year(2007);
    3
    Year y2007 = new Year(2007);
    3
    Month dec2006 = new Month(12, 2006);
    Differences
    Expression1Expression2Difference
    org.jfree.data.time.Yearorg.jfree.data.time.MonthSUBCLASS_TYPE_MISMATCH
    y2007dec2006VARIABLE_NAME_MISMATCH
    org.jfree.data.time.Yearorg.jfree.data.time.MonthSUBCLASS_TYPE_MISMATCH
    org.jfree.data.time.Yearorg.jfree.data.time.MonthSUBCLASS_TYPE_MISMATCH
    new Year(2007)new Month(12,2006)ARGUMENT_NUMBER_MISMATCH
    Preondition Violations
    Expression new Year(2007) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new Month(12,2006) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new Year(2007) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new Month(12,2006) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3
    Month dec2006 = new Month(12, 2006);
    4
    Date d0 = new Date(y2006.getFirstMillisecond());
    4
    Date d0 = new Date(y2006.getFirstMillisecond());
    4
    Date d0 = new Date(nov2006.getFirstMillisecond());
    Differences
    Expression1Expression2Difference
    y2006nov2006VARIABLE_NAME_MISMATCH
    org.jfree.data.time.Yearorg.jfree.data.time.MonthSUBCLASS_TYPE_MISMATCH
    4
    Date d0 = new Date(nov2006.getFirstMillisecond());
    5
    Date d1 = new Date(y2006.getFirstMillisecond() + 500L);
    5
    Date d1 = new Date(y2006.getFirstMillisecond() + 500L);
    5
    Date d1 = new Date(nov2006.getFirstMillisecond() + 500L);
    Differences
    Expression1Expression2Difference
    y2006nov2006VARIABLE_NAME_MISMATCH
    org.jfree.data.time.Yearorg.jfree.data.time.MonthSUBCLASS_TYPE_MISMATCH
    5
    Date d1 = new Date(nov2006.getFirstMillisecond() + 500L);
    6
    Date d2 = new Date(y2006.getMiddleMillisecond());
    6
    Date d2 = new Date(y2006.getMiddleMillisecond());
    6
    Date d2 = new Date(nov2006.getMiddleMillisecond());
    Differences
    Expression1Expression2Difference
    y2006nov2006VARIABLE_NAME_MISMATCH
    org.jfree.data.time.Yearorg.jfree.data.time.MonthSUBCLASS_TYPE_MISMATCH
    6
    Date d2 = new Date(nov2006.getMiddleMillisecond());
    7
    Date d3 = new Date(y2006.getMiddleMillisecond() + 500L);
    7
    Date d3 = new Date(y2006.getMiddleMillisecond() + 500L);
    7
    Date d3 = new Date(nov2006.getMiddleMillisecond() + 500L);
    Differences
    Expression1Expression2Difference
    y2006nov2006VARIABLE_NAME_MISMATCH
    org.jfree.data.time.Yearorg.jfree.data.time.MonthSUBCLASS_TYPE_MISMATCH
    7
    Date d3 = new Date(nov2006.getMiddleMillisecond() + 500L);
    8
    Date d4 = new Date(y2006.getLastMillisecond());
    8
    Date d4 = new Date(y2006.getLastMillisecond());
    8
    Date d4 = new Date(nov2006.getLastMillisecond());
    Differences
    Expression1Expression2Difference
    y2006nov2006VARIABLE_NAME_MISMATCH
    org.jfree.data.time.Yearorg.jfree.data.time.MonthSUBCLASS_TYPE_MISMATCH
    8
    Date d4 = new Date(nov2006.getLastMillisecond());
    9
    Date end = new Date(y2007.getLastMillisecond());
    9
    Date end = new Date(y2007.getLastMillisecond());
    9
    Date end = new Date(dec2006.getLastMillisecond());
    Differences
    Expression1Expression2Difference
    y2007dec2006VARIABLE_NAME_MISMATCH
    org.jfree.data.time.Yearorg.jfree.data.time.MonthSUBCLASS_TYPE_MISMATCH
    9
    Date end = new Date(dec2006.getLastMillisecond());
    10
    DateTickUnit unit = new DateTickUnit(DateTickUnit.YEAR, 10);
    10
    DateTickUnit unit = new DateTickUnit(DateTickUnit.YEAR, 10);
    10
    DateTickUnit unit = new DateTickUnit(DateTickUnit.MONTH, 1);
    Differences
    Expression1Expression2Difference
    YEARMONTHVARIABLE_NAME_MISMATCH
    101LITERAL_VALUE_MISMATCH
    10
    DateTickUnit unit = new DateTickUnit(DateTickUnit.MONTH, 1);
    11
    axis.setTickUnit(unit);
    11
    axis.setTickUnit(unit);
    12
    axis.setTickMarkPosition(DateTickMarkPosition.START);
    12
    axis.setTickMarkPosition(DateTickMarkPosition.START);
    13
    axis.setRange(d0, end);
    13
    axis.setRange(d0, end);
    14
    Date psd = axis.previousStandardDate(d0, unit);
    14
    Date psd = axis.previousStandardDate(d0, unit);
    15
    Date nsd = unit.addToDate(psd);
    15
    Date nsd = unit.addToDate(psd);
    16
    assertTrue(psd.getTime() < d0.getTime());
    16
    assertTrue(psd.getTime() < d0.getTime());
    17
    assertTrue(nsd.getTime() >= d0.getTime());
    17
    assertTrue(nsd.getTime() >= d0.getTime());
    18
    axis.setRange(d1, end);
    18
    axis.setRange(d1, end);
    19
    psd = axis.previousStandardDate(d1, unit);
    19
    psd = axis.previousStandardDate(d1, unit);
    20
    nsd = unit.addToDate(psd);
    20
    nsd = unit.addToDate(psd);
    21
    assertTrue(psd.getTime() < d1.getTime());
    21
    assertTrue(psd.getTime() < d1.getTime());
    22
    assertTrue(nsd.getTime() >= d1.getTime());
    22
    assertTrue(nsd.getTime() >= d1.getTime());
    23
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
    23
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
    24
    axis.setRange(d1, end);
    24
    axis.setRange(d1, end);
    25
    psd = axis.previousStandardDate(d1, unit);
    25
    psd = axis.previousStandardDate(d1, unit);
    26
    nsd = unit.addToDate(psd);
    26
    nsd = unit.addToDate(psd);
    27
    assertTrue(psd.getTime() < d1.getTime());
    27
    assertTrue(psd.getTime() < d1.getTime());
    28
    assertTrue(nsd.getTime() >= d1.getTime());
    28
    assertTrue(nsd.getTime() >= d1.getTime());
    29
    axis.setRange(d2, end);
    29
    axis.setRange(d2, end);
    30
    psd = axis.previousStandardDate(d2, unit);
    30
    psd = axis.previousStandardDate(d2, unit);
    31
    nsd = unit.addToDate(psd);
    31
    nsd = unit.addToDate(psd);
    32
    assertTrue(psd.getTime() < d2.getTime());
    32
    assertTrue(psd.getTime() < d2.getTime());
    33
    assertTrue(nsd.getTime() >= d2.getTime());
    33
    assertTrue(nsd.getTime() >= d2.getTime());
    34
    axis.setRange(d3, end);
    34
    axis.setRange(d3, end);
    35
    psd = axis.previousStandardDate(d3, unit);
    35
    psd = axis.previousStandardDate(d3, unit);
    36
    nsd = unit.addToDate(psd);
    36
    nsd = unit.addToDate(psd);
    37
    assertTrue(psd.getTime() < d3.getTime());
    37
    assertTrue(psd.getTime() < d3.getTime());
    38
    assertTrue(nsd.getTime() >= d3.getTime());
    38
    assertTrue(nsd.getTime() >= d3.getTime());
    39
    axis.setTickMarkPosition(DateTickMarkPosition.END);
    39
    axis.setTickMarkPosition(DateTickMarkPosition.END);
    40
    axis.setRange(d3, end);
    40
    axis.setRange(d3, end);
    41
    psd = axis.previousStandardDate(d3, unit);
    41
    psd = axis.previousStandardDate(d3, unit);
    42
    nsd = unit.addToDate(psd);
    42
    nsd = unit.addToDate(psd);
    43
    assertTrue(psd.getTime() < d3.getTime());
    43
    assertTrue(psd.getTime() < d3.getTime());
    44
    assertTrue(nsd.getTime() >= d3.getTime());
    44
    assertTrue(nsd.getTime() >= d3.getTime());
    45
    axis.setRange(d4, end);
    45
    axis.setRange(d4, end);
    46
    psd = axis.previousStandardDate(d4, unit);
    46
    psd = axis.previousStandardDate(d4, unit);
    47
    nsd = unit.addToDate(psd);
    47
    nsd = unit.addToDate(psd);
    48
    assertTrue(psd.getTime() < d4.getTime());
    48
    assertTrue(psd.getTime() < d4.getTime());
    49
    assertTrue(nsd.getTime() >= d4.getTime());
    49
    assertTrue(nsd.getTime() >= d4.getTime());
    Precondition Violations (8)
    Row Violation
    1Expression new Year(2006) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression new Month(11,2006) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Expression new Year(2006) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Expression new Month(11,2006) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5Expression new Year(2007) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6Expression new Month(12,2006) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7Expression new Year(2007) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    8Expression new Month(12,2006) cannot be parameterized, because it has dependencies to/from statements that will be extracted