123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- { %version=1.1 }
- Program toperator5;
- uses ucomplex;
- const
- REAL_ONE = 14.0;
- REAL_TWO = 12.0;
- REAL_THREE = 1999.0;
- IM_ONE = 7.5;
- IM_TWO = 15.2;
- IM_THREE = 11.1;
- procedure fail;
- begin
- WriteLn('Failed!');
- Halt(1);
- end;
- procedure TestAssign;
- var
- j: real;
- z: complex;
- begin
- Write('Testing assignment operator...');
- j:=12.4;
- z:=j;
- if trunc(z.re) <> trunc(12.4) then
- fail;
- WriteLn('Success!');
- end;
- procedure TestComplexAdd;
- var
- i,j: complex;
- begin
- Write('Testing add operator...');
- i.re:=REAL_ONE;
- i.im:=IM_ONE;
- j.re:=REAL_TWO;
- j.im:=IM_TWO;
- i:=i + j;
- if trunc(i.re) <> trunc(REAL_ONE+REAL_TWO) then
- fail;
- if trunc(i.im) <> trunc(IM_ONE+IM_TWO) then
- fail;
- WriteLn('Success!');
- end;
- procedure TestComplexSubtract;
- var
- i,j: complex;
- begin
- Write('Testing subtract operator...');
- i.re:=REAL_ONE;
- i.im:=IM_ONE;
- j.re:=REAL_TWO;
- j.im:=IM_TWO;
- i:=i - j;
- if trunc(i.re) <> trunc(REAL_ONE-REAL_TWO) then
- fail;
- if trunc(i.im) <> trunc(IM_ONE-IM_TWO) then
- fail;
- WriteLn('Success!');
- end;
- procedure TestComplexMultiply;
- var
- i,j: complex;
- begin
- Write('Testing multiply operator...');
- i.re:=REAL_ONE;
- i.im:=IM_ONE;
- j.re:=REAL_TWO;
- j.im:=IM_TWO;
- i:=i * j;
- if trunc(i.re) <> trunc((REAL_ONE*REAL_TWO)-(IM_ONE*IM_TWO)) then
- fail;
- if trunc(i.im) <> trunc((IM_ONE*REAL_TWO) + (IM_TWO*REAL_ONE)) then
- fail;
- WriteLn('Success!');
- end;
- procedure TestComplexEqual;
- var
- i,j: complex;
- begin
- Write('Testing equality operator...');
- i.re:=REAL_ONE;
- i.im:=IM_ONE;
- j.re:=REAL_ONE;
- j.im:=IM_ONE;
- if not (i = j) then
- fail;
- WriteLn('Success!');
- end;
- procedure TestComplexNegate;
- var
- i : complex;
- begin
- Write('Testing negate operator...');
- i.re:=REAL_ONE;
- i.im:=IM_ONE;
- i:=-i;
- if trunc(i.re) <> trunc(-REAL_ONE) then
- fail;
- if trunc(i.im) <> trunc(-IM_ONE) then
- fail;
- WriteLn('Success!');
- end;
- Begin
- TestAssign;
- TestComplexAdd;
- TestComplexSubtract;
- TestComplexMultiply;
- TestComplexEqual;
- TestComplexNegate;
- end.
- {
- $Log$
- Revision 1.2 2002-12-22 15:14:02 peter
- * ucomplex will be delivered with 1.1
- Revision 1.1 2002/09/08 11:54:23 carl
- * operator overloading interactive tests
- }
|