44 lines
1.3 KiB
Text
44 lines
1.3 KiB
Text
local fn ListObjectsAreIdentical( array as CFArrayRef ) as BOOL
|
|
BOOL result = NO
|
|
|
|
CFSetRef set = fn SetWithArray( array )
|
|
result = ( fn SetCount( set ) <= 1 )
|
|
end fn = result
|
|
|
|
local fn ListIsInLexicalOrder( array as CFArrayRef ) as BOOL
|
|
BOOL result = NO
|
|
|
|
CFArrayRef sortedArray = fn ArraySortedArrayUsingSelector( array, @"compare:" )
|
|
result = fn ArrayIsEqual( array, sortedArray )
|
|
end fn = result
|
|
|
|
void local fn ListTest
|
|
long i
|
|
|
|
CFArrayRef listA = @[@"aaa", @"aaa", @"aaa", @"aaa"]
|
|
CFArrayRef listB = @[@"aaa", @"aab", @"aba", @"baa"]
|
|
CFArrayRef listC = @[@"caa", @"aab", @"aca", @"abc"]
|
|
CFArrayRef lists = @[listA, listB, listC]
|
|
|
|
for i = 0 to 2
|
|
CFArrayRef temp = lists[i]
|
|
printf @"Input array elements: %@ %@ %@ %@", temp[0], temp[1], temp[2], temp[3]
|
|
if ( fn ListObjectsAreIdentical( temp ) )
|
|
printf @"List elements are lexically equal."
|
|
else
|
|
printf @"List elements not lexically equal."
|
|
end if
|
|
if ( fn ListIsInLexicalOrder( temp ) == YES )
|
|
printf @"List elements are in ascending order."
|
|
else
|
|
printf @"List elements not in ascending order."
|
|
end if
|
|
CFArrayRef sorted = fn ArraySortedArrayUsingSelector( temp, @"compare:" )
|
|
printf @"List elements sorted in ascending order: %@ %@ %@ %@", sorted[0], sorted[1], sorted[2], sorted[3]
|
|
print
|
|
next
|
|
end fn
|
|
|
|
fn ListTest
|
|
|
|
HandleEvents
|