QTP Math functions - ArraySort
Parent page: Service Functions – Math (QTP, VBScript)
Description
Sorts one-dimentional array in ascending / descending order.
Implementation
Public Function ArraySort(ByRef dvArray, ByVal boolAscending)
Dim Iter, Jter, aValue
If Not isArray(dvArray) Then
dvArray = Array(dvArray)
ArraySort = dvArray
End If
For Jter = 0 To UBound(dvArray)
For Iter = 0 To UBound(dvArray)-1
aValue = dvArray(Iter)
If aValue > dvArray(Iter+1) Then
If boolAscending Then
dvArray(Iter) = dvArray(Iter+1)
dvArray(Iter+1) = aValue
Else
'do nothing
End If
Else
If boolAscending Then
'do nothing
Else
dvArray(Iter) = dvArray(Iter+1)
dvArray(Iter+1) = aValue
End If
End If
Next
Next
ArraySort = dvArray
End Function
Unit Tests
Log.Message("Array routines")
dvArray = Array(2,3,5,1,9,-1)
Call ArraySort(dvArray, True)
If dvArray(0) <> -1 Then
Log.Error("ArraySort failed")
End If
If dvArray(5) <> 9 Then
Log.Error("ArraySort failed")
End If
If dvArray(3) <> 3 Then
Log.Error("ArraySort failed")
End If
dvArray = 1
Call ArraySort(dvArray, True)
If dvArray(0) <> 1 Then
Log.Error("ArraySort failed")
End If
dvArray = ""
Call ArraySort(dvArray, True)
If dvArray(0) <> "" Then
Log.Error("ArraySort failed")
End If
dvArray = ArraySort(sEmpty, True)
If dvArray(0) <> "" Then
Log.Error("ArraySort failed")
End If
dvArray = Array(2,3,5,1,9,-1)
Call ArraySort(dvArray, False)
If dvArray(5) <> -1 Then
Log.Error("ArraySort failed")
End If
If dvArray(0) <> 9 Then
Log.Error("ArraySort failed")
End If
If dvArray(3) <> 2 Then
Log.Error("ArraySort failed")
End If

