279 lines
8.2 KiB
ObjectPascal
279 lines
8.2 KiB
ObjectPascal
procedure SetTest;
|
|
var
|
|
s2: set of byte;
|
|
s1: set of integer;
|
|
s3: set of smallint;
|
|
s4: set of shortint;
|
|
s5: set of word;
|
|
s6: set of longword;
|
|
s7: set of int64;
|
|
s8: set of uint64;
|
|
s9: set of real;
|
|
s10: set of char;
|
|
s11: set of string;
|
|
s12: set of 3..6;
|
|
s13: set of 'b'..'f';
|
|
|
|
begin
|
|
s2 := [1, 4]; assert(s2 = [1, 4]);
|
|
s1 := [4, 7, 8]; assert(s1 = [4, 7, 8]);
|
|
s3 := [2, 6]; assert(s3 = [2, 6]);
|
|
s4 := [2, 6]; assert(s4 = [2, 6]);
|
|
s5 := [2, 6]; assert(s5 = [2, 6]);
|
|
s6 := [2, 6]; assert(s6 = [2, 6]);
|
|
s7 := [2, 6]; assert(s7 = [2, 6]);
|
|
s8 := [2, 6]; assert(s8 = [2, 6]);
|
|
s9 := [2.71, 3.14]; assert(s9 = [2.71, 3.14]);
|
|
s10 := ['a', 'c', 'e']; assert(s10 = ['a', 'c', 'e']);
|
|
s11 := ['aaa', 'bbb', 'ccc']; assert(s11 = ['aaa', 'bbb', 'ccc']);
|
|
|
|
s1 := [1, 3, 7];
|
|
s2 := s1; assert(s2 = [1, 3, 7]);
|
|
s3 := s1; assert(s3 = [1, 3, 7]);
|
|
s4 := s1; assert(s4 = [1, 3, 7]);
|
|
s5 := s1; assert(s5 = [1, 3, 7]);
|
|
s6 := s1; assert(s6 = [1, 3, 7]);
|
|
s7 := s1; assert(s7 = [1, 3, 7]);
|
|
s8 := s1; assert(s8 = [1, 3, 7]);
|
|
|
|
s2 := [1..50, 51..100]; assert(s2 = [1..100]);
|
|
s1 := [1..50, 51..100]; assert(s1 = [1..100]);
|
|
s3 := [1..50, 51..100]; assert(s3 = [1..100]);
|
|
s4 := [1..50, 51..100]; assert(s4 = [1..100]);
|
|
s5 := [1..50, 51..100]; assert(s5 = [1..100]);
|
|
s6 := [1..50, 51..100]; assert(s6 = [1..100]);
|
|
s7 := [1..50, 51..100]; assert(s7 = [1..100]);
|
|
s8 := [1..50, 51..100]; assert(s8 = [1..100]);
|
|
s10 := ['a'..'d', 'e'..'m']; assert(s10 = ['a'..'m']);
|
|
assert([1, 2, 3] < [1..4]);
|
|
assert([2..4] = [2, 3, 4]);
|
|
assert(['a', 'c'..'f'] > ['a']);
|
|
assert([1..6] <> [2..4]);
|
|
assert([2, 3] + [7, 8] = [2, 3, 7, 8]);
|
|
assert([1, 4, 6] * [1, 6] = [1, 6]);
|
|
assert([1] + [2] <= [1..3]);
|
|
assert([2, 3, 5] - [2, 3] = [5]);
|
|
assert(5 in [4, 5, 8]);
|
|
assert([1, 2] + [] = [1, 2]);
|
|
assert([1, 2] * [] = []);
|
|
assert([1, 2] - [] = [1, 2]);
|
|
assert(not (5 in [7]));
|
|
s12 := [1..4];
|
|
assert(s12 = [3..4]);
|
|
s13 := ['a'..'d']; assert(s13 = ['b'..'d']);
|
|
end;
|
|
|
|
procedure SetTest2;
|
|
var
|
|
s2: set of byte;
|
|
s1: set of integer;
|
|
s3: set of smallint;
|
|
s4: set of shortint;
|
|
s5: set of word;
|
|
s6: set of longword;
|
|
s7: set of int64;
|
|
s8: set of uint64;
|
|
s9: set of real;
|
|
s10: set of char;
|
|
s11: set of string;
|
|
s12: set of 3..6;
|
|
s13: set of 'b'..'f';
|
|
|
|
procedure Nested;
|
|
begin
|
|
s2 := [1, 4]; assert(s2 = [1, 4]);
|
|
s1 := [4, 7, 8]; assert(s1 = [4, 7, 8]);
|
|
s3 := [2, 6]; assert(s3 = [2, 6]);
|
|
s4 := [2, 6]; assert(s4 = [2, 6]);
|
|
s5 := [2, 6]; assert(s5 = [2, 6]);
|
|
s6 := [2, 6]; assert(s6 = [2, 6]);
|
|
s7 := [2, 6]; assert(s7 = [2, 6]);
|
|
s8 := [2, 6]; assert(s8 = [2, 6]);
|
|
s9 := [2.71, 3.14]; assert(s9 = [2.71, 3.14]);
|
|
s10 := ['a', 'c', 'e']; assert(s10 = ['a', 'c', 'e']);
|
|
s11 := ['aaa', 'bbb', 'ccc']; assert(s11 = ['aaa', 'bbb', 'ccc']);
|
|
|
|
s1 := [1, 3, 7];
|
|
s2 := s1; assert(s2 = [1, 3, 7]);
|
|
s3 := s1; assert(s3 = [1, 3, 7]);
|
|
s4 := s1; assert(s4 = [1, 3, 7]);
|
|
s5 := s1; assert(s5 = [1, 3, 7]);
|
|
s6 := s1; assert(s6 = [1, 3, 7]);
|
|
s7 := s1; assert(s7 = [1, 3, 7]);
|
|
s8 := s1; assert(s8 = [1, 3, 7]);
|
|
|
|
s2 := [1..50, 51..100]; assert(s2 = [1..100]);
|
|
s1 := [1..50, 51..100]; assert(s1 = [1..100]);
|
|
s3 := [1..50, 51..100]; assert(s3 = [1..100]);
|
|
s4 := [1..50, 51..100]; assert(s4 = [1..100]);
|
|
s5 := [1..50, 51..100]; assert(s5 = [1..100]);
|
|
s6 := [1..50, 51..100]; assert(s6 = [1..100]);
|
|
s7 := [1..50, 51..100]; assert(s7 = [1..100]);
|
|
s8 := [1..50, 51..100]; assert(s8 = [1..100]);
|
|
s10 := ['a'..'d', 'e'..'m']; assert(s10 = ['a'..'m']);
|
|
assert([1, 2, 3] < [1..4]);
|
|
assert([2..4] = [2, 3, 4]);
|
|
assert(['a', 'c'..'f'] > ['a']);
|
|
assert([1..6] <> [2..4]);
|
|
assert([2, 3] + [7, 8] = [2, 3, 7, 8]);
|
|
assert([1, 4, 6] * [1, 6] = [1, 6]);
|
|
assert([1] + [2] <= [1..3]);
|
|
assert([2, 3, 5] - [2, 3] = [5]);
|
|
assert(5 in [4, 5, 8]);
|
|
assert([1, 2] + [] = [1, 2]);
|
|
assert([1, 2] * [] = []);
|
|
assert([1, 2] - [] = [1, 2]);
|
|
assert(not (5 in [7]));
|
|
s12 := [1..4];
|
|
assert(s12 = [3..4]);
|
|
s13 := ['a'..'d']; assert(s13 = ['b'..'d']);
|
|
end;
|
|
|
|
begin
|
|
s2 := [1, 4]; assert(s2 = [1, 4]);
|
|
s1 := [4, 7, 8]; assert(s1 = [4, 7, 8]);
|
|
s3 := [2, 6]; assert(s3 = [2, 6]);
|
|
s4 := [2, 6]; assert(s4 = [2, 6]);
|
|
s5 := [2, 6]; assert(s5 = [2, 6]);
|
|
s6 := [2, 6]; assert(s6 = [2, 6]);
|
|
s7 := [2, 6]; assert(s7 = [2, 6]);
|
|
s8 := [2, 6]; assert(s8 = [2, 6]);
|
|
s9 := [2.71, 3.14]; assert(s9 = [2.71, 3.14]);
|
|
s10 := ['a', 'c', 'e']; assert(s10 = ['a', 'c', 'e']);
|
|
s11 := ['aaa', 'bbb', 'ccc']; assert(s11 = ['aaa', 'bbb', 'ccc']);
|
|
|
|
s1 := [1, 3, 7];
|
|
s2 := s1; assert(s2 = [1, 3, 7]);
|
|
s3 := s1; assert(s3 = [1, 3, 7]);
|
|
s4 := s1; assert(s4 = [1, 3, 7]);
|
|
s5 := s1; assert(s5 = [1, 3, 7]);
|
|
s6 := s1; assert(s6 = [1, 3, 7]);
|
|
s7 := s1; assert(s7 = [1, 3, 7]);
|
|
s8 := s1; assert(s8 = [1, 3, 7]);
|
|
|
|
s2 := [1..50, 51..100]; assert(s2 = [1..100]);
|
|
s1 := [1..50, 51..100]; assert(s1 = [1..100]);
|
|
s3 := [1..50, 51..100]; assert(s3 = [1..100]);
|
|
s4 := [1..50, 51..100]; assert(s4 = [1..100]);
|
|
s5 := [1..50, 51..100]; assert(s5 = [1..100]);
|
|
s6 := [1..50, 51..100]; assert(s6 = [1..100]);
|
|
s7 := [1..50, 51..100]; assert(s7 = [1..100]);
|
|
s8 := [1..50, 51..100]; assert(s8 = [1..100]);
|
|
s10 := ['a'..'d', 'e'..'m']; assert(s10 = ['a'..'m']);
|
|
assert([1, 2, 3] < [1..4]);
|
|
assert([2..4] = [2, 3, 4]);
|
|
assert(['a', 'c'..'f'] > ['a']);
|
|
assert([1..6] <> [2..4]);
|
|
assert([2, 3] + [7, 8] = [2, 3, 7, 8]);
|
|
assert([1, 4, 6] * [1, 6] = [1, 6]);
|
|
assert([1] + [2] <= [1..3]);
|
|
assert([2, 3, 5] - [2, 3] = [5]);
|
|
assert(5 in [4, 5, 8]);
|
|
assert([1, 2] + [] = [1, 2]);
|
|
assert([1, 2] * [] = []);
|
|
assert([1, 2] - [] = [1, 2]);
|
|
assert(not (5 in [7]));
|
|
s12 := [1..4];
|
|
assert(s12 = [3..4]);
|
|
s13 := ['a'..'d']; assert(s13 = ['b'..'d']);
|
|
Nested;
|
|
end;
|
|
|
|
type
|
|
TDiap = 1..3;
|
|
|
|
procedure Test3(var s: set of TDiap);
|
|
begin
|
|
assert(not (4 in s));
|
|
s := [1..6];
|
|
assert(s = [1..3]);
|
|
end;
|
|
|
|
procedure Test4(var s: set of TDiap);
|
|
procedure Nested;
|
|
begin
|
|
assert(not (4 in s));
|
|
s := [1..6];
|
|
assert(s = [1..3]);
|
|
end;
|
|
|
|
begin
|
|
Nested;
|
|
end;
|
|
|
|
var
|
|
s2: set of byte;
|
|
s1: set of integer;
|
|
s3: set of smallint;
|
|
s4: set of shortint;
|
|
s5: set of word;
|
|
s6: set of longword;
|
|
s7: set of int64;
|
|
s8: set of uint64;
|
|
s9: set of real;
|
|
s10: set of char;
|
|
s11: set of string;
|
|
s12: set of 3..6;
|
|
s13: set of 'b'..'f';
|
|
s14: set of TDiap;
|
|
arr: array [1..4] of set of TDiap;
|
|
arr2: array[1..4] of real;
|
|
|
|
begin
|
|
s2 := [1, 4]; assert(s2 = [1, 4]);
|
|
s1 := [4, 7, 8]; assert(s1 = [4, 7, 8]);
|
|
s3 := [2, 6]; assert(s3 = [2, 6]);
|
|
s4 := [2, 6]; assert(s4 = [2, 6]);
|
|
s5 := [2, 6]; assert(s5 = [2, 6]);
|
|
s6 := [2, 6]; assert(s6 = [2, 6]);
|
|
s7 := [2, 6]; assert(s7 = [2, 6]);
|
|
s8 := [2, 6]; assert(s8 = [2, 6]);
|
|
s9 := [2.71, 3.14]; assert(s9 = [2.71, 3.14]);
|
|
s10 := ['a', 'c', 'e']; assert(s10 = ['a', 'c', 'e']);
|
|
s11 := ['aaa', 'bbb', 'ccc']; assert(s11 = ['aaa', 'bbb', 'ccc']);
|
|
|
|
s1 := [1, 3, 7];
|
|
s2 := s1; assert(s2 = [1, 3, 7]);
|
|
s3 := s1; assert(s3 = [1, 3, 7]);
|
|
s4 := s1; assert(s4 = [1, 3, 7]);
|
|
s5 := s1; assert(s5 = [1, 3, 7]);
|
|
s6 := s1; assert(s6 = [1, 3, 7]);
|
|
s7 := s1; assert(s7 = [1, 3, 7]);
|
|
s8 := s1; assert(s8 = [1, 3, 7]);
|
|
|
|
s2 := [1..50, 51..100]; assert(s2 = [1..100]);
|
|
s1 := [1..50, 51..100]; assert(s1 = [1..100]);
|
|
s3 := [1..50, 51..100]; assert(s3 = [1..100]);
|
|
s4 := [1..50, 51..100]; assert(s4 = [1..100]);
|
|
s5 := [1..50, 51..100]; assert(s5 = [1..100]);
|
|
s6 := [1..50, 51..100]; assert(s6 = [1..100]);
|
|
s7 := [1..50, 51..100]; assert(s7 = [1..100]);
|
|
s8 := [1..50, 51..100]; assert(s8 = [1..100]);
|
|
s10 := ['a'..'d', 'e'..'m']; assert(s10 = ['a'..'m']);
|
|
assert([1, 2, 3] < [1..4]);
|
|
assert([2..4] = [2, 3, 4]);
|
|
assert(['a', 'c'..'f'] > ['a']);
|
|
assert([1..6] <> [2..4]);
|
|
assert([2, 3] + [7, 8] = [2, 3, 7, 8]);
|
|
assert([1, 4, 6] * [1, 6] = [1, 6]);
|
|
assert([1] + [2] <= [1..3]);
|
|
assert([2, 3, 5] - [2, 3] = [5]);
|
|
assert(5 in [4, 5, 8]);
|
|
assert([1, 2] + [] = [1, 2]);
|
|
assert([1, 2] * [] = []);
|
|
assert([1, 2] - [] = [1, 2]);
|
|
assert(not (5 in [7]));
|
|
s12 := [1..4];
|
|
assert(s12 = [3..4]);
|
|
s13 := ['a'..'d']; assert(s13 = ['b'..'d']);
|
|
SetTest;
|
|
SetTest2;
|
|
|
|
s14 := [1..6];
|
|
assert(s14 = [1..3]);
|
|
Test3(s14);
|
|
Test4(s14);
|
|
s2 := [];
|
|
Include(s2, 2);
|
|
Include(s2, 5);
|
|
end. |