1517-1-3

Month m1 = new Month(2, 2003); Month m2 = new Month(2, 2003); assertTrue(m1.equals(m2)); int h1 = m1.hashCode(); int h2 = m2.hashCode(); assertEquals(h1, h2);
Week w1 = new Week(2, 2003); Week w2 = new Week(2, 2003); assertTrue(w1.equals(w2)); int h1 = w1.hashCode(); int h2 = w2.hashCode(); assertEquals(h1, h2);

Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/tests/org/jfree/data/time/junit/MonthTests.java |  | File path: /jfreechart-1.0.10/tests/org/jfree/data/time/junit/WeekTests.java
Method name: `void testHashcode()` |  | Method name: `void testHashcode()`
Number of AST nodes: 6 |  | Number of AST nodes: 6

1

    Month m1 = new Month(2, 2003);↵

1

    Week w1 = new Week(2, 2003);↵

2

            Month m2 = new Month(2, 2003);↵

2

            Week w2 = new Week(2, 2003);↵

3

            assertTrue(m1.equals(m2));↵

3

            assertTrue(w1.equals(w2));↵

4

            int h1 = m1.hashCode();↵

4

            int h1 = w1.hashCode();↵

5

            int h2 = m2.hashCode();↵

5

            int h2 = w2.hashCode();↵

6

            assertEquals(h1, h2);

6

            assertEquals(h1, h2);

See real code fragment |  | See real code fragment

Summary
Number of common nesting structure subtrees | 1
Number of refactorable cases | 1
Number of non-refactorable cases | 0
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.0
Clones location | Clones are in different classes having the same super class
Number of node comparisons | 19

1. {Refactorable}

   Mapping Summary
   Number of mapped statements | 6
   Number of unmapped statements in the first code fragment | 0
   Number of unmapped statements in the second code fragment | 0
   Time elapsed for statement mapping (ms) | 0.0
   Clone type | Type 2

   Mapped Statements
   ID | Statement |  | ID | Statement
   --- | --- | --- | --- | ---

   1

       Month m1 = new Month(2, 2003);

   1 | Month m1 = new Month(2, 2003);
   1 | Week w1 = new Week(2, 2003);

   Differences
   Expression1 | Expression2 | Difference
   --- | --- | ---
   org.jfree.data.time.Month | org.jfree.data.time.Week | SUBCLASS_TYPE_MISMATCH
   m1 | w1 | VARIABLE_NAME_MISMATCH
   org.jfree.data.time.Month | org.jfree.data.time.Week | SUBCLASS_TYPE_MISMATCH
   org.jfree.data.time.Month | org.jfree.data.time.Week | SUBCLASS_TYPE_MISMATCH

   1

       Week w1 = new Week(2, 2003);

   2

       Month m2 = new Month(2, 2003);

   2 | Month m2 = new Month(2, 2003);
   2 | Week w2 = new Week(2, 2003);

   Differences
   Expression1 | Expression2 | Difference
   --- | --- | ---
   org.jfree.data.time.Month | org.jfree.data.time.Week | SUBCLASS_TYPE_MISMATCH
   m2 | w2 | VARIABLE_NAME_MISMATCH
   org.jfree.data.time.Month | org.jfree.data.time.Week | SUBCLASS_TYPE_MISMATCH
   org.jfree.data.time.Month | org.jfree.data.time.Week | SUBCLASS_TYPE_MISMATCH

   2

       Week w2 = new Week(2, 2003);

   3

       assertTrue(m1.equals(m2));

   3 | assertTrue(m1.equals(m2));
   3 | assertTrue(w1.equals(w2));

   Differences
   Expression1 | Expression2 | Difference
   --- | --- | ---
   m2 | w2 | VARIABLE_NAME_MISMATCH
   org.jfree.data.time.Month | org.jfree.data.time.Week | SUBCLASS_TYPE_MISMATCH
   m1 | w1 | VARIABLE_NAME_MISMATCH
   org.jfree.data.time.Month | org.jfree.data.time.Week | SUBCLASS_TYPE_MISMATCH

   3

       assertTrue(w1.equals(w2));

   4

       int h1 = m1.hashCode();

   4 | int h1 = m1.hashCode();
   4 | int h1 = w1.hashCode();

   Differences
   Expression1 | Expression2 | Difference
   --- | --- | ---
   m1 | w1 | VARIABLE_NAME_MISMATCH
   org.jfree.data.time.Month | org.jfree.data.time.Week | SUBCLASS_TYPE_MISMATCH

   4

       int h1 = w1.hashCode();

   5

       int h2 = m2.hashCode();

   5 | int h2 = m2.hashCode();
   5 | int h2 = w2.hashCode();

   Differences
   Expression1 | Expression2 | Difference
   --- | --- | ---
   m2 | w2 | VARIABLE_NAME_MISMATCH
   org.jfree.data.time.Month | org.jfree.data.time.Week | SUBCLASS_TYPE_MISMATCH

   5

       int h2 = w2.hashCode();

   6

       assertEquals(h1, h2);

   6

       assertEquals(h1, h2);

   Precondition Violations (0)
   Row | Violation
   --- | ---