Big Integers

Program Information

Name: Big Integers
Domain: Numerical program
Functionality: An implementation of BigInteger class that supports large integer arithmetic operations that are not supported natively by the compilers.
Input: Intergers $x,y,z$.And the input denote as $(x,y)$
Output: The output denote as $O(x,y)$.

Reference

Generating Source Inputs for Metamorphic Testing Using Dynamic Symbolic Execution https://doi.org/10.1145/2896971.2896980

MR Information

MR1------Commutation

Description:
Property: $O(x,y)=O(y,x)$
Source input: $(x,y)$
Source output: $O(x,y)$
Follow-up input: $(y,x)$
Follow-up output: $O(y,x)$
Input relation: $(x,y) \Rightarrow (y,x)$
Output relation: $O(x,y)=O(y,x)$
Pattern:

MR2------Association

Description:
Property: $O(O(x+y),z)=O(x,O(y+z))$
Source input: $(x,y)$
Source output: $O(x,y)$
Follow-up input: $(O(x+y),z),(x,O(y+z))$
Follow-up output: $O(O(x+y),z),O(x,O(y+z))$
Input relation: $(x,y) \Rightarrow (O(x+y),z),(x,O(y+z))$
Output relation: $O(O(x+y),z)=O(x,O(y+z))$
Pattern:

MR3------Distribution

Description:
Property: $z*O(x,y) = O((x*z),(y*z))$
Source input: $(x,y)$
Source output: $O(x,y)$
Follow-up input: $((x*z),(y*z))$
Follow-up output: $O((x*z),(y*z))$
Input relation: $(x,y) \Rightarrow ((x*z),(y*z))$
Output relation: $z*O(x,y) = O((x*z),(y*z))$
Pattern:
Insert title here