unit set2u; 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(SetOf(2,3)+[7,8]=[2,3,7,8]); var sss: set of integer := [1,4,6]; assert(sss*[1,6]=[1,6]); assert(SetOf(1)+[2] <= [1..3]); assert(SetOf(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 = [1..4]); s13 := ['a'..'d']; assert(s13 = ['a'..'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(SetOf(2,3)+[7,8]=[2,3,7,8]); assert(SetOf(1,4,6)*[1,6]=[1,6]); assert([1]+[2] <= [1..3]); assert(SetOf(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 = [1..4]); s13 := ['a'..'d']; assert(s13 = ['a'..'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(SetOf(2,3)+[7,8]=[2,3,7,8]); assert(SetOf(1,4,6)*[1,6]=[1,6]); assert(SetOf(1)+[2] <= [1..3]); assert(SetOf(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 = [1..4]); s13 := ['a'..'d']; assert(s13 = ['a'..'d']); Nested; end; type TDiap = 1..3; procedure Test3(var s : set of TDiap); begin assert(not (14 in s)); s := [1..6]; assert(s=[1..6]); end; procedure Test4(var s : set of TDiap); procedure Nested; begin assert(not (14 in s)); s := [1..6]; assert(s=[1..6]); end; begin Nested; end; procedure Start; 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(SetOf(2,3)+[7,8]=[2,3,7,8]); assert(SetOf(1,4,6)*[1,6]=[1,6]); assert(SetOf(1)+[2] <= [1..3]); assert(SetOf(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 = [1..4]); s13 := ['a'..'d']; assert(s13 = ['a'..'d']); SetTest; SetTest2; s14 := [1..6]; assert(s14=[1..6]); Test3(s14); Test4(s14); s2 := []; Include(s2,2); Include(s2,5); end; //arr[1] := s14;//[1..5]; //assert(arr[1]=[1..3]); end.