|
@@ -0,0 +1,115 @@
|
|
|
|
+program tb0655;
|
|
|
|
+
|
|
|
|
+uses
|
|
|
|
+ Variants;
|
|
|
|
+
|
|
|
|
+var
|
|
|
|
+ s8: Int8 = $12;
|
|
|
|
+ u8: UInt8 = $98;
|
|
|
|
+ s16: Int16 = $1234;
|
|
|
|
+ u16: UInt16 = $9876;
|
|
|
|
+ s32: Int32 = $12345768;
|
|
|
|
+ u32: UInt32 = $98765432;
|
|
|
|
+ s64: Int64 = $1234567812345678;
|
|
|
|
+ u64: UInt64 = UInt64($9876543298765432);
|
|
|
|
+ v: Variant;
|
|
|
|
+ ov: OleVariant;
|
|
|
|
+begin
|
|
|
|
+ v := s8;
|
|
|
|
+ if VarType(v) <> varShortInt then
|
|
|
|
+ Halt(1);
|
|
|
|
+ if Int8(v) <> s8 then
|
|
|
|
+ Halt(2);
|
|
|
|
+
|
|
|
|
+ v := u8;
|
|
|
|
+ if VarType(v) <> varByte then
|
|
|
|
+ Halt(3);
|
|
|
|
+ if UInt8(v) <> u8 then
|
|
|
|
+ Halt(4);
|
|
|
|
+
|
|
|
|
+ v := s16;
|
|
|
|
+ if VarType(v) <> varSmallInt then
|
|
|
|
+ Halt(5);
|
|
|
|
+ if Int16(v) <> s16 then
|
|
|
|
+ Halt(6);
|
|
|
|
+
|
|
|
|
+ v := u16;
|
|
|
|
+ if VarType(v) <> varWord then
|
|
|
|
+ Halt(7);
|
|
|
|
+ if UInt16(v) <> u16 then
|
|
|
|
+ Halt(8);
|
|
|
|
+
|
|
|
|
+ v := s32;
|
|
|
|
+ if VarType(v) <> varInteger then
|
|
|
|
+ Halt(9);
|
|
|
|
+ if Int32(v) <> s32 then
|
|
|
|
+ Halt(10);
|
|
|
|
+
|
|
|
|
+ v := u32;
|
|
|
|
+ if VarType(v) <> varLongWord then
|
|
|
|
+ Halt(11);
|
|
|
|
+ if UInt32(v) <> u32 then
|
|
|
|
+ Halt(12);
|
|
|
|
+
|
|
|
|
+ v := s64;
|
|
|
|
+ if VarType(v) <> varInt64 then
|
|
|
|
+ Halt(13);
|
|
|
|
+ if Int64(v) <> s64 then
|
|
|
|
+ Halt(14);
|
|
|
|
+
|
|
|
|
+ v := u64;
|
|
|
|
+ if VarType(v) <> varUInt64 then
|
|
|
|
+ Halt(15);
|
|
|
|
+ if UInt64(v) <> u64 then
|
|
|
|
+ Halt(16);
|
|
|
|
+
|
|
|
|
+ { OleVariant has slightly different behaviour to Variant }
|
|
|
|
+ ov := s8;
|
|
|
|
+ if VarType(ov) <> varInteger then
|
|
|
|
+ Halt(17);
|
|
|
|
+ if Int8(ov) <> s8 then
|
|
|
|
+ Halt(18);
|
|
|
|
+
|
|
|
|
+ ov := u8;
|
|
|
|
+ if VarType(ov) <> varInteger then
|
|
|
|
+ Halt(19);
|
|
|
|
+ if UInt8(ov) <> u8 then
|
|
|
|
+ Halt(20);
|
|
|
|
+
|
|
|
|
+ ov := s16;
|
|
|
|
+ if VarType(ov) <> varInteger then
|
|
|
|
+ Halt(21);
|
|
|
|
+ if Int16(ov) <> s16 then
|
|
|
|
+ Halt(22);
|
|
|
|
+
|
|
|
|
+ ov := u16;
|
|
|
|
+ if VarType(ov) <> varInteger then
|
|
|
|
+ Halt(23);
|
|
|
|
+ if UInt16(ov) <> u16 then
|
|
|
|
+ Halt(24);
|
|
|
|
+
|
|
|
|
+ ov := s32;
|
|
|
|
+ if VarType(ov) <> varInteger then
|
|
|
|
+ Halt(25);
|
|
|
|
+ if Int32(ov) <> s32 then
|
|
|
|
+ Halt(26);
|
|
|
|
+
|
|
|
|
+ ov := u32;
|
|
|
|
+ if VarType(ov) <> varInteger then
|
|
|
|
+ Halt(27);
|
|
|
|
+ { ! }
|
|
|
|
+ if UInt32(Int32(ov)) <> u32 then
|
|
|
|
+ Halt(28);
|
|
|
|
+
|
|
|
|
+ ov := s64;
|
|
|
|
+ if VarType(ov) <> varInt64 then
|
|
|
|
+ Halt(29);
|
|
|
|
+ if Int64(ov) <> s64 then
|
|
|
|
+ Halt(30);
|
|
|
|
+
|
|
|
|
+ ov := u64;
|
|
|
|
+ if VarType(ov) <> varUInt64 then
|
|
|
|
+ Halt(31);
|
|
|
|
+ if UInt64(ov) <> u64 then
|
|
|
|
+ Halt(32);
|
|
|
|
+end.
|