header
Integer Bugs: Triangle area

Tag:
Edit edit   Starstar

Program Information

Name: Integer Bugs: Triangle area
Domain: Geometry
Functionality: Calculate triangle area with Heron's formula
Input: Vertex coordinates of convex polygon,denotes as $(v_1,v_2,v_3)$.Fig.1 illustrate our test case. $\overrightarrow{v_1v_2} = 2 \overrightarrow{v_1v_2'} = 4 \overrightarrow{v_1v_2''} = 8 \overrightarrow{v_1v_2'''}$ and $\overrightarrow{v_1v_3}= 2\overrightarrow{v_1v_3'} = 4\overrightarrow{v_1v_3''} = 8 \overrightarrow{v_1v_3'''}$
Output: Calculates area and perimeter of convex polygon,denotes as $area(v_1,v_2,v_3)$ and $perimeter(v_1,v_2,v_3)$.

Reference

 Research on Metamorphic Testing: A Case Study in Integer Bugs Detection https://doi.org/10.1109/ISDEA.2013.516 

MR Information

MR1------ ratio of area

Description:
Property: $\frac{area(v_1,v_2,v_3)}{area(v_1,v_2',v_3')} = \frac{area(v_1,v_2',v_3')}{area(v_1,v_2'',v_3'')} = \frac{area(v_1,v_2'',v_3'')}{area(v_1,v_2''',v_3''')} = 4$
Source input: $(v_1,v_2,v_3)$
Source output: $area(v_1,v_2,v_3)$
Follow-up input: $(v_1,v_2',v_3'),(v_1,v_2'',v_3''),(v_1,v_2''',v_3''')$
Follow-up output: $area(v_1,v_2',v_3'),area(v_1,v_2'',v_3''),area(v_1,v_2''',v_3''')$
Input relation:
Output relation: $\frac{area(v_1,v_2,v_3)}{area(v_1,v_2',v_3')} = \frac{area(v_1,v_2',v_3')}{area(v_1,v_2'',v_3'')} = \frac{area(v_1,v_2'',v_3'')}{area(v_1,v_2''',v_3''')} = 4$
Pattern:

MR2------ ratio of perimeter

Description:
Property: $\frac{perimeter(v_1,v_2,v_3)}{perimeter(v_1,v_2',v_3')} = \frac{perimeter(v_1,v_2',v_3')}{perimeter(v_1,v_2'',v_3'')} = \frac{perimeter(v_1,v_2'',v_3'')}{perimeter(v_1,v_2''',v_3''')} = 2$
Source input: $(v_1,v_2,v_3)$
Source output: $perimeter(v_1,v_2,v_3)$
Follow-up input: $(v_1,v_2',v_3'),(v_1,v_2'',v_3''),(v_1,v_2''',v_3''')$
Follow-up output: $perimeter(v_1,v_2',v_3'),perimeter(v_1,v_2'',v_3''),perimeter(v_1,v_2''',v_3''')$
Input relation:
Output relation: $\frac{perimeter(v_1,v_2,v_3)}{perimeter(v_1,v_2',v_3')} = \frac{perimeter(v_1,v_2',v_3')}{perimeter(v_1,v_2'',v_3'')} = \frac{perimeter(v_1,v_2'',v_3'')}{perimeter(v_1,v_2''',v_3''')} = 2$
Pattern:
Insert title here