if (count > 0) {
if (count % 2 == 1) {
if (count > 1) {
result = Statistics.calculateMedian(values, 0, count / 2);
}
else {
result = Statistics.calculateMedian(values, 0, 0);
}
}
else {
result = Statistics.calculateMedian(values, 0, count / 2 - 1);
}
}
if (count > 0) {
if (count % 2 == 1) {
if (count > 1) {
result = Statistics.calculateMedian(values, count / 2,
count - 1);
}
else {
result = Statistics.calculateMedian(values, 0, 0);
}
}
else {
result = Statistics.calculateMedian(values, count / 2,
count - 1);
}
}
Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/src/org/jfree/data/statistics/BoxAndWhiskerCalculator.java
|
|
File path: /jfreechart-1.0.10/src/org/jfree/data/statistics/BoxAndWhiskerCalculator.java
|
Method name: double calculateQ1(List)
|
|
Method name: double calculateQ3(List)
|
Number of AST nodes: 6
|
|
Number of AST nodes: 6
|
|
1 | if (count > 0) {↵ | | 1 | if (count > 0) {↵
|
2 | if (count % 2 == 1) {↵ | | 2 | if (count % 2 == 1) {↵
|
3 | if (count > 1) {↵ | | 3 | if (count > 1) {↵
|
4 | result = Statistics.calculateMedian(values, 0, count / 2↵ | | 4 | result = Statistics.calculateMedian(values, count / 2, ↵
|
5 | );↵ | | 5 | count - 1);↵
|
6 | }↵ | | 6 | }↵
|
7 | else {↵ | | 7 | else {↵
|
8 | result = Statistics.calculateMedian(values, 0, 0);↵ | | 8 | result = Statistics.calculateMedian(values, 0, 0);↵
|
9 | }↵ | | 9 | }↵
|
10 | }↵ | | 10 | }↵
|
11 | else {↵ | | 11 | else {↵
|
12 | result = Statistics.calculateMedian(values, 0, count / 2 - 1);↵ | | 12 | result = Statistics.calculateMedian(values, count / 2, ↵
|
13 | }↵ | | 13 | count - 1);↵
|
14 | ↵ | | 14 | }↵
|
15 | } | | 15 | }
|
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.2 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 14 |
-
{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) | 1.9 |
Clone type | Type 2 |
Mapped Statements
ID |
Statement |
|
ID |
Statement |
5 | if (count > 0) | | 5 | if (count > 0) |
6 | | | 6 | |
7 | | | 7 | |
8 | result = Statistics.calculateMedian(values, 0, count / 2); | | 8 | result = Statistics.calculateMedian(values, count / 2, count - 1); |
| | | | |
9 | result = Statistics.calculateMedian(values, 0, 0); | | 9 | result = Statistics.calculateMedian(values, 0, 0); |
| | | | |
10 | result = Statistics.calculateMedian(values, 0, count / 2 - 1); | | 10 | result = Statistics.calculateMedian(values, count / 2, count - 1); |
Precondition Violations (5)
Row |
Violation |
1 | Expression count / 2 cannot be parameterized, because it has dependencies to/from statements that will be extracted |
2 | Expression count / 2 cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Expression count - 1 cannot be parameterized, because it has dependencies to/from statements that will be extracted |
4 | Expression count / 2 cannot be parameterized, because it has dependencies to/from statements that will be extracted |
5 | Expression count / 2 cannot be parameterized, because it has dependencies to/from statements that will be extracted |