Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
comparison tests/testsetup.sh @ 773:bae0652d0577
farray.sh: More tests for sorting: using a random array
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 23 Oct 2024 18:33:38 +0200 |
| parents | 7ead30e3b2f9 |
| children |
comparison
equal
deleted
inserted
replaced
| 772:e942b091b762 | 773:bae0652d0577 |
|---|---|
| 55 return 1 | 55 return 1 |
| 56 else | 56 else |
| 57 return 0 | 57 return 0 |
| 58 fi | 58 fi |
| 59 } | 59 } |
| 60 | |
| 61 | |
| 62 #: | |
| 63 #: Create an new array with random entries. | |
| 64 #: | |
| 65 #: Args: | |
| 66 #: $1 (str): The variable name of the array where to store the | |
| 67 #: $2 (int): The number of array entries | |
| 68 #: | |
| 69 #: Input (Globals): | |
| 70 #: | |
| 71 create_random_array() { | |
| 72 # $1 $2 | |
| 73 | |
| 74 local _arr _n | |
| 75 | |
| 76 farray_create _arr | |
| 77 for _n in $(/usr/bin/jot -r "${2}" 100000000 999999999); do | |
| 78 farray_append _arr "${_n}" | |
| 79 done | |
| 80 setvar "${1}" "${_arr}" | |
| 81 } | |
| 82 | |
| 83 | |
| 84 #: | |
| 85 #: Check that an array is sorted | |
| 86 #: | |
| 87 #: Args: | |
| 88 #: $1 (str): The array | |
| 89 #: | |
| 90 #: Returns: | |
| 91 #: int: 0 (truthy) if the array `$1` is sorted, 1 otherwise | |
| 92 #: | |
| 93 check_array_is_sorted() { | |
| 94 # $1 | |
| 95 | |
| 96 local i len prev_item cur_item | |
| 97 | |
| 98 farray_length len "$1" | |
| 99 | |
| 100 [ "${len}" -le 1 ] && return 0 | |
| 101 farray_get prev_item "$1" 1 | |
| 102 i=2 | |
| 103 while [ "${i}" -le "${len}" ]; do | |
| 104 farray_get cur_item "$1" "${i}" | |
| 105 [ "${prev_item}" '>' "${cur_item}" ] && return 1 | |
| 106 prev_item="${cur_item}" | |
| 107 i=$((i + 1)) | |
| 108 done | |
| 109 return 0 | |
| 110 } |
