File path: /apache-ant-1.7.0/src/tests/junit/org/apache/tools/ant/types/selectors/DepthSelectorTest.java | File path: /apache-ant-1.7.0/src/tests/junit/org/apache/tools/ant/types/selectors/SizeSelectorTest.java | |||
Method name: void testValidate()
|
Method name: void testValidate()
|
|||
Number of AST nodes: 6 | Number of AST nodes: 6 | |||
1 | DepthSelector s = (DepthSelector)getInstance();↵ | 1 | SizeSelector s = (SizeSelector)getInstance();↵ | |
2 | try {↵ | 2 | try {↵ | |
3 | s.isSelected(basedir,filenames[0],files[0]);↵ | 3 | s.isSelected(basedir,filenames[0],files[0]);↵ | |
4 | fail("DepthSelector did not check for required fields");↵ | 4 | fail("SizeSelector did not check for required fields");↵ | |
5 | } catch (BuildException be1) {↵ | 5 | } catch (BuildException be1) {↵ | |
6 | assertEquals("You must set at least one of the min or the " +↵ | 6 | assertEquals("The value attribute is required, and must "↵ | |
7 | "max levels.", be1.getMessage());↵ | 7 | + "be positive", be1.getMessage());↵ | |
8 | }↵ | 8 | }↵ | |
9 | s = (DepthSelector)getInstance();↵ | 9 | s = (SizeSelector)getInstance();↵ | |
10 | s.setMin(5); | 10 | s.setValue(-10); | |
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.3 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 14 |
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) | 40.4 |
Clone type | Type 2 |
ID | Statement | ID | Statement | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | DepthSelector s = (DepthSelector)getInstance(); |
| 1 | SizeSelector s = (SizeSelector)getInstance(); | |||||||||||||||||||||
2 | try |
| 2 | try | |||||||||||||||||||||
3 | s.isSelected(basedir, filenames[0], files[0]); |
| 3 | s.isSelected(basedir, filenames[0], files[0]); | |||||||||||||||||||||
4 | fail("DepthSelector did not check for required fields"); |
| 4 | fail("SizeSelector did not check for required fields"); | |||||||||||||||||||||
5 | s = (DepthSelector)getInstance(); |
| 5 | s = (SizeSelector)getInstance(); | |||||||||||||||||||||
6 | s.setMin(5); |
| 6 | s.setValue(-10); |
Row | Violation |
---|---|
1 | Expression s.setMin(5) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
2 | Expression s.setValue(-10) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Expression s.setMin(5) is a void method call, and thus it cannot be parameterized |
4 | Expression s.setValue(-10) is a void method call, and thus it cannot be parameterized |
5 | Expression s cannot be unified with expression s , because common superclass org.apache.tools.ant.types.selectors.BaseExtendSelector does not declare member(s) public void setMin(int) , public void setValue(long) |
6 | Clone fragment #1 returns variable s with type org.apache.tools.ant.types.selectors.DepthSelector , while Clone fragment #2 returns variable s with type org.apache.tools.ant.types.selectors.SizeSelector |