|
@@ -0,0 +1,40 @@
|
|
|
|
+procedure do_error(i : longint);
|
|
|
|
+ begin
|
|
|
|
+ writeln('Error near ',i);
|
|
|
|
+ halt(1);
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
+var
|
|
|
|
+ s0,s1,s2 : single;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+begin
|
|
|
|
+ writeln('--- Testing single functions ---');
|
|
|
|
+
|
|
|
|
+ // 0.0
|
|
|
|
+ s0:=0.0;
|
|
|
|
+
|
|
|
|
+ s1:=sin(s0);
|
|
|
|
+ if s1<>0.0 then
|
|
|
|
+ do_error(1);
|
|
|
|
+
|
|
|
|
+ s1:=cos(s0);
|
|
|
|
+ if s1<>1.0 then
|
|
|
|
+ do_error(2);
|
|
|
|
+
|
|
|
|
+ s1:=arctan(s0);
|
|
|
|
+ if s1<>0.0 then
|
|
|
|
+ do_error(3);
|
|
|
|
+
|
|
|
|
+ // pi/2
|
|
|
|
+ s2:=pi/2;
|
|
|
|
+
|
|
|
|
+ s1:=sin(s2);
|
|
|
|
+ if s1<>1.0 then
|
|
|
|
+ do_error(100);
|
|
|
|
+
|
|
|
|
+ s1:=cos(s2);
|
|
|
|
+ { with single precision, the result is -4.371138829E-08 }
|
|
|
|
+ if abs(s1-0.0)>4.371138829E-08 then
|
|
|
|
+ do_error(101);
|
|
|
|
+end.
|