header
Triangle classification

Tag:
Edit edit   Starstar

Program Information

Name: Triangle classification
Domain: Geometry
Functionality: Takes three integers as arguments and classifies the corresponding triangle as scalene , isocele , equilateral  or illegal.
Input: $a,b,c$ are three sides of the triangle.
Output: $Tri(I)$ is the area of the triangle.

Reference

 Automated Metamorphic Testing https://doi.org/10.1109/CMPSAC.2003.1245319; 
An Effective Iterative Metamorphic Testing Algorithm Based on Program Path Analysis https://doi.org/10.1109/QSIC.2007.4385510; 
Security Assurance with Program Path Analysis and Metamorphic Testing https://doi.org/10.1109/ICSESS.2013.6615286;

MR Information

MR1------

Description:
Property: $Tri(a,b,c)=Tri(b,a,c)$ if $(a,b,c) \notin \{(a,b,c)|a=b\&\&a+b>c\}$  
Source input: $(a,b,c)$
Source output: $Tri(a,b,c)$
Follow-up input: $(b,a,c)$
Follow-up output: $Tri(b,a,c)$
Input relation: $(a,b,c) \Rightarrow (b,a,c)$ where $(a,b,c) \notin \{(a,b,c)|a=b\&\&a+b>c\}$
Output relation: $Tri(a,b,c)=Tri(b,a,c)$
Pattern:

MR2------

Description:
Property: $Tri(a,b,c)=Tri(a,c,b) $ if $(a,b,c) \notin \{(a,b,c)|b=c\&\&b+c>a\}$ 
Source input: $(a,b,c)$
Source output: $Tri(a,b,c)$
Follow-up input: $(a,c,b)$
Follow-up output: $Tri(a,c,b)$
Input relation: $(a,b,c) \Rightarrow (a,c,b)$ where $(a,b,c) \notin \{(a,b,c)|b=c\&\&b+c>a\}$
Output relation: $Tri(a,b,c)=Tri(a,c,b)$
Pattern:

MR3------

Description:
Property: $Tri(a,b,c)=Tri(c,b,a) $ if $(a,b,c) \notin \{(a,b,c)|a=c\&\&a+c>b\}$ 
Source input: $(a,b,c)$ 
Source output: $Tri(a,b,c)$ 
Follow-up input:  $(c,b,a)$
Follow-up output: $Tri(c,b,a)$ 
Input relation: $(a,b,c) \Rightarrow (c,b,a)$ where $(a,b,c) \notin \{(a,b,c)|a=c\&\&a+c>b\}$ 
Output relation: $Tri(a,b,c)=Tri(c,b,a)$ 
Pattern:

MR4------

Description:
Property: $Tri(a,b,c)=4*Tri(2a,2b,2c) $  
Source input: $(a,b,c)$ 
Source output: $Tri(a,b,c)$ 
Follow-up input: $(2a,2b,2c)$ 
Follow-up output:  $Tri(2a,2b,2c)$
Input relation: $(a,b,c) \Rightarrow (2a,2b,2c)$  
Output relation: $Tri(a,b,c)=4*Tri(2a,2b,2c)$  
Pattern:

MR5------

Description:
Property: $Tri(a,b,c)=Tri(\sqrt{2b^2+2c^2-a^2},b,c) $ if $(a,b,c) \notin \{(a,b,c)|a^2=b^2+c^2\}$ 
Source input: $(a,b,c)$ 
Source output: $Tri(a,b,c)$ 
Follow-up input:  $(\sqrt{2b^2+2c^2-a^2},b,c)$
Follow-up output: $Tri(\sqrt{2b^2+2c^2-a^2},b,c)$ 
Input relation: $(a,b,c) \Rightarrow (\sqrt{2b^2+2c^2-a^2},b,c)$ where $(a,b,c) \notin \{(a,b,c)|a^2=b^2+c^2\}$ 
Output relation: $Tri(a,b,c)=Tri(\sqrt{2b^2+2c^2-a^2},b,c) $ 
Pattern:

MR6------

Description:
Property: $Tri(a,b,c)=Tri(a,\sqrt{2a^2+2c^2-b^2},c) $ if $(a,b,c) \notin \{(a,b,c)|b^2=a^2+c^2\}$ 
Source input: $(a,b,c)$ 
Source output: $Tri(a,b,c)$ 
Follow-up input: $(a,\sqrt{2a^2+2c^2-b^2},c)$ 
Follow-up output:  $Tri(a,\sqrt{2a^2+2c^2-b^2},c)$
Input relation: $(a,b,c) \Rightarrow (a,\sqrt{2a^2+2c^2-b^2},c)$ where $(a,b,c) \notin \{(a,b,c)|b^2=a^2+c^2\}$ 
Output relation: $Tri(a,b,c)=Tri(a,\sqrt{2a^2+2c^2-b^2},c)$ 
Pattern:

MR7------

Description:
Property: $Tri(a,b,c)=Tri(a,b,\sqrt{2a^2+2b^2-c^2}) $ if $(a,b,c) \notin \{(a,b,c)|c^2=a^2+b^2\}$ 
Source input: $(a,b,c)$ 
Source output: $Tri(a,b,c)$ 
Follow-up input: $(a,b,\sqrt{2a^2+2b^2-c^2})$ 
Follow-up output: $Tri(a,b,\sqrt{2a^2+2b^2-c^2})$ 
Input relation: $(a,b,c) \Rightarrow (a,b,\sqrt{2a^2+2b^2-c^2})$ where $(a,b,c) \notin \{(a,b,c)|c^2=a^2+b^2\}$ 
Output relation: $Tri(a,b,c)=Tri(a,b,\sqrt{2a^2+2b^2-c^2})$ 
Pattern:

MR8------

Description:
Property: $\rm Tri(AD,DP,AP) + Tri(AE,EP,AP) = Tri(BD,AD,AB) + Tri(AE,AC,CE) + Tri(AB,AC,BC)$
Source input:  $\rm (AD,DP,AP),(AE,EP,AP)$ 
Source output:  $\rm Tri(AD,DP,AP),Tri(AE,EP,AP)$  
Follow-up input: $\rm (BD,AD,AB),(AE,AC,CE),(AB,AC,BC)$  
Follow-up output: $\rm Tri(BD,AD,AB),Tri(AE,AC,CE),Tri(AB,AC,BC)$  
Input relation:
Output relation: $\rm Tri(AD,DP,AP) + Tri(AE,EP,AP) = Tri(BD,AD,AB) + Tri(AE,AC,CE) + Tri(AB,AC,BC)$  
Pattern:

MR9------

Description:
Property:  $\rm 4\times Tri(AO,OE,AE) = Tri(AB,AC,BC) + Tri(AC,AD,CD) + Tri(BC,CD,BD) + Tri(AE,AB,BE)$ 
Source input:  $\rm (AO,OE,AE) $ 
Source output:  $\rm Tri(AO,OE,AE)$  
Follow-up input: $\rm (AB,AC,BC),(AC,AD,CD),(BC,CD,BD),(AE,AB,BE)$  
Follow-up output: $\rm Tri(AB,AC,BC),Tri(AC,AD,CD),Tri(BC,CD,BD),Tri(AE,AB,BE)$  
Input relation:
Output relation: $\rm 4\times Tri(AO,OE,AE) = Tri(AB,AC,BC) + Tri(AC,AD,CD) + Tri(BC,CD,BD) + Tri(AE,AB,BE)$  
Pattern:
Insert title here