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 }