Browse Source

tests: add Negative and Positive operators test

git-svn-id: trunk@16641 -
paul 14 years ago
parent
commit
fb2c465f22
1 changed files with 19 additions and 0 deletions
  1. 19 0
      tests/test/terecs6.pp

+ 19 - 0
tests/test/terecs6.pp

@@ -34,6 +34,8 @@ type
     class operator BitwiseXor(a, b: TFoo): TFoo;
     class operator Inc(a: TFoo): TFoo;
     class operator Dec(a: TFoo): TFoo;
+    class operator Negative(a: TFoo): TFoo;
+    class operator Positive(a: TFoo): TFoo;
  end;
 
 class operator TFoo.Explicit(a: TFoo): Integer;
@@ -167,6 +169,17 @@ begin
   Result.F := a.F - 1;
 end;
 
+class operator TFoo.Negative(a: TFoo): TFoo;
+begin
+  Result.F := -a.F;
+end;
+
+class operator TFoo.Positive(a: TFoo): TFoo;
+begin
+  // to check that operator is called change the result value
+  Result.F := a.F+1;
+end;
+
 var
   a, b: TFoo;
   i: integer;
@@ -232,5 +245,11 @@ begin
     halt(26);
   if Integer(b) <> 2 then
     halt(27);
+  b := -b;
+  if b.F <> -1 then
+    halt(28);
+  b := +b;
+  if b.F <> 0 then
+    halt(29);
   WriteLn('ok');
 end.