Func_ra: TSL's Missing Array Manipulation Functions
Alright, any self respecting automated testers out there knows the importance
of arrays. Unfortunately, Mercury only provides the basic functionality for
manipulating arrays. Create and Delete. How fun. Fortunately, you can now have
a fuller featured tool for manipulating arrays. From getting the length of an
array, removing an element from an array, copying arrays, the limit is endless!!!
So, without further delay (I've been swamped, so sorry for the delay :-) ),
here is a summary of the features:
- array_add
- Add an item at the end of a sequential array (so you don't have to worry about keeping track of the array size).
- array_append
- Appends the elements of one array to the end of another array. ** Updated to work with empty array **
- array_assign
- Fills in the target array with the values of the source array.
- array_clear
- Clears out the content of the array. ** Updated to use "out" as parameter type **
- array_compare
- Compare 2 arrays, both on the key and element values.
- array_copy
- Makes a copy of an array (same length, key, value).
- array_get_first_index
- Returns the first index in an array. Only works for a sequential
array. This function has been updated to run faster than before
(up to 90 times faster) -- but no longer supports associative array.
If anyone still needs support for associative array, let me know and
I'll try to support it. ** Updated on May 10, 2002 to work correctly with very small
arrays (e.g. 2 elements) ** ** Updated on September 8, 2002 to fix bug that causes the function to go into an infinite loop when using a certain sized array **
- array_get_last_index
- Returns the last index in the array. Only works for a sequential
array. This function has been updated to run faster than before
(up to 90 times faster) -- as with the
array_get_first_index
function, this function no longer support associative arrays. Let me
know if anyone would still be interested in that support.
** Updated on Oct 11, 2001. I was informed that this function was written as
array_get_last_index2
, which breaks some other functions that
uses this function. This has been corrected. **
** Update on February 13, 2002. I was informed by Dianne Davis (formerly
with XO Communications) that this function didn't
work as expected, and after some investigation, I found the error. It has
since been fixed. **
** Updated on September 9, 2002 to fix bug that causes the function to go into an infinite loop when using a certain sized array (see array_get_first_index) **
- array_get_first_last_index
- Returns both the first and last index in an array.
Uses
array_get_first_index
and array_get_last_index
, so it currently only supports sequential array.
- array_insert
- Inserts an element to a specified position of a sequential array.
- array_inverse
- Inverses the order of a sequential array.
- array_isempty
- Determines whether an array is empty.
** Updated on Mar 15, 2004. Thanks to Andrew Bleach for reporting that this function was returning inverse return value. This has been corrected. **
- array_length
- Returns the length of the array. More useful if the array is sequentially
indexed, of course.
- array_pick
- Randomly pick an array element. Does not modify the array's elements at
all.
- array_pick_remove
- Returns a randomly picked array item, and remove the element from
the array. This is basically an array_pick and array_remove together.
- array_remove
- Remove an element from the array, and move the remaining elements down so
that the array is still sequential. This allows you to remove an element from
the middle of an array.
- array_shuffle
- Shuffles the content of an array. May not be that useful to most people,
but can be useful to some people. (Corrected bug that causes it to complain
about invalid number of parameters).
- array_subset
- Copy a subset of an array to another array. Also allows the user to specify
the starting index in the target array.
- array_swap
- Swaps the element contents of the specified array index locations. E.g. to
swap the element contents of the first and last element (hmm, maybe for sorting?).
- join
- Join the elements in an array into a string. Basically the reverse of the
split
command. You can specify any string as the concatenator
string.
- match_array_to_array
- Compares the contents of 2 arrays, and populates 3 result arrays: matching
elements, unmatched elements from the first array, and unmatched elements in
the second array.
- split2
- Works like the regular
split
, except this one accepts string
as a delimiter.
- split2_append
- An extension of
split2
that appends to an array as opposed
to replacing it. Very useful at times.
Can't wait to get your hands on it? Get it here:
func_ra.zip
Tech Page @