Test Functions
A test function performs data comparisons. Use a test function to identify the data type of a value, or determine if a value exists. You can use a test function on all data types.
CompareDictionary
CompareDictionary(a,b)
: Compares 2 strings ignoring case differences, and compares text that appears to consist of numbers, in numerical order. The function returns -1 if a < b, 0 if a==b, and 1 if a > b.
This function is not exactly the same order as a dictionary compare, in that it does not handle diacritical marks the same way the Sort tool does when configured to do a dictionary sort using the conventions of a particular language.
Example
CompareDictionary("apples","bananas")
returns -1.
CompareDictionary("APPLES","bananas")
returns -1.
CompareDictionary("apples","BANANAS")
returns -1.
CompareDictionary("Cherries","Bananas")
returns 1.
CompareDictionary("Bananas","bananas")
returns 0.
CompareDictionary("2","10")
returns -1 (2 is less than 10, even though the character '2' is greater than the character '1').
CompareDictionary("minus -2","minus -10")
returns 1 (-2 is greater than -10. Minus signs are only recognized at the beginning or after white space).
CompareDictionary("minus-2","minus-10")
returns -1 (2 is less than 10. The minus sign, not being after a space, was not counted as part of the number).
CompareDictionary("pi 3.14","pi 6.28e-1")
returns 1 (Yes, it recognizes floating-point number syntax, and 3.14 is greater than 0.628).
CompareDictionary("12.00","12.0")
returns 1 (When numbers have the same value, the longer string of digits is considered greater).
CompareDictionary("a", "À")
returns -1.
CompareDictionary("n","ñ")
returns -1 (letters with marks are larger in the Latin alphabet than all the unmarked letters).
CompareDictionary("o","ñ")
returns -1 (In a Spanish Dictionary compare the Ñ should be less than O. This is not a linguistic dictionary comparison).
CompareDictionary("ñ","Ñ")
returns 0 (marked characters compare ignoring case, too).
CompareDigits
CompareDigits(a, b, nNumDigits)
: Compares 2 numbers and determines if they are the same to the given number of digits (nNumDigits).
The comparison finds the difference between the numbers and reports A and B the same when the leading digit of the difference is nNumDigits or more places to the right of the digits of the larger of A and B.
The nNumDigits parameter must not be null and must be between 1 and 19, otherwise, an error results. If a non-integer is given, it is rounded to the nearest integer (nNumDigits can be between 0.5 and 19.499).
Example
CompareDigits(12345, 12444, 3)
returns "True" (because the difference is 99, and its leading digit is 3 places to the right of the leading digit of A).
CompareDigits(12345, 12445, 3)
returns "False" (because the difference is 100, and its leading digit is only 2 places to the right of the leading digit of A).
CompareDigits(12.345, 12.347, 3)
returns "True" (because the difference is 0.002, and its leading digit is 4 places to the right of the leading digit of A).
CompareDigits(12.345, 12.435, 3)
returns "True" (because the difference is 0.09, and its leading digit is 3 places to the right of the leading digit of A).
CompareDigits( .91234, .91334, 3)
returns "False" (because the difference is .001, and its leading digit is only 2 places to the right of the leading digit of A).
CompareEpsilon
CompareEpsilon(a, b, epsilon)
: Compares 2 floating-point numbers and returns True if they are within epsilon.
Example
CompareEpsilon(123.456789101112, 123.456789101114, 0.0001)
returns "True."
CompareEpsilon(123.456, 123.456789101112, 0.0001)
returns "False."
IsEmpty
IsEmpty(v)
: Tests if v is NULL or equal to "".
Example
Name (v) | IsEmpty |
---|---|
John | False |
True | |
Mary | False |
[Null] | True |
IsInteger
IsInteger(v)
: Tests if (v) contains a value that can be converted to an integer. If so, it returns True.
Section
Value (v) | IsInteger |
---|---|
1 | True |
1.23 | False |
B | False |
IsNull
IsNull(v)
: Tests if (v) is NULL. Returns True if v is NULL, otherwise returns False.
To populate a row with a NULL value, use the NULL()
function.
Example
Name (v) | IsNull |
---|---|
John | False |
[Null] | True |
Mary | False |
IsNumber
IsNumber(v)
: Tests if the field type for (v) is a number or not.
IsSpatialObj
IsSpatialObj(v)
: Tests if the field type for (v) is a spatial object or not.
IsString
IsString(v)
: Tests if the field type for (v) is a string or not.