@@ -23,7 +23,7 @@ warmup() {
23
23
done
24
24
else
25
25
for i in $elements ; do
26
- set_a_arr_el test_arr " abcdefghijklmn $i =$test_str "
26
+ set_a_arr_el test_arr " ${test_key_str} $i =$test_str "
27
27
done
28
28
fi
29
29
}
@@ -43,7 +43,7 @@ test_set() {
43
43
done
44
44
else
45
45
for i in $elements ; do
46
- set_a_arr_el test_arr " abcdefghijklmn $i =$test_str "
46
+ set_a_arr_el test_arr " ${test_key_str} $i =$test_str "
47
47
done
48
48
fi
49
49
}
@@ -55,7 +55,19 @@ test_unset() {
55
55
done
56
56
else
57
57
for i in $elements ; do
58
- unset_${arr_type} _arr_el test_arr " abcdefghijklmn$i "
58
+ unset_${arr_type} _arr_el test_arr " ${test_key_str} $i "
59
+ done
60
+ fi
61
+ }
62
+
63
+ test_unset_mid () {
64
+ if [ " $arr_type " = " i" ]; then
65
+ for i in $elements ; do
66
+ unset_${arr_type} _arr_el test_arr " $(( i+ 2 )) "
67
+ done
68
+ else
69
+ for i in $elements ; do
70
+ unset_${arr_type} _arr_el test_arr " ${test_key_str} $(( i+ 2 )) "
59
71
done
60
72
fi
61
73
}
@@ -67,7 +79,7 @@ test_unset_rev() {
67
79
done
68
80
else
69
81
for i in $elements ; do
70
- unset_${arr_type} _arr_el test_arr " abcdefghijklmn $(( l- i+ 1 )) "
82
+ unset_${arr_type} _arr_el test_arr " ${test_key_str} $(( l- i+ 1 )) "
71
83
done
72
84
fi
73
85
}
@@ -79,7 +91,7 @@ test_unset_rev_mid() {
79
91
done
80
92
else
81
93
for i in $elements ; do
82
- unset_${arr_type} _arr_el test_arr " abcdefghijklmn $(( l- i)) "
94
+ unset_${arr_type} _arr_el test_arr " ${test_key_str} $(( l- i)) "
83
95
done
84
96
fi
85
97
}
@@ -97,7 +109,7 @@ test_get() {
97
109
done
98
110
else
99
111
for i in $elements ; do
100
- get_${arr_type} _arr_val test_arr " abcdefghijklmn $i " testvar
112
+ get_${arr_type} _arr_val test_arr " ${test_key_str} $i " testvar
101
113
# printf '%s\n' "$testvar" >/dev/null
102
114
# printf '%s\n' "${test_arr[$i]}" >/dev/null
103
115
done
@@ -107,21 +119,22 @@ test_get() {
107
119
test_mixed () {
108
120
if [ " $arr_type " = " i" ]; then
109
121
for j in $elements ; do
110
- [ $(( j % 100 )) = 0 ] && sort_i_arr test_arr
122
+ [ $(( j % 10 )) = 0 ] && get_i_arr_indices test_arr testvar
111
123
# set_i_arr_el test_arr "$((j))" "$test_str"
112
124
set_i_arr_el test_arr " $(( j+ 1 )) " " $test_str "
113
- unset_i_arr_el test_arr " $(( j)) "
125
+ # unset_i_arr_el test_arr "$((j))"
114
126
set_i_arr_el test_arr " $(( j)) " " $test_str "
127
+ get_i_arr_max_index test_arr testvar
115
128
# add_i_arr_el test_arr "$test_str"
116
129
done
117
130
# set_${arr_type}_arr_val test_arr "$i" "$test_str"
118
131
# add_${arr_type}_arr_el test_arr "$test_str"
119
132
else
120
133
for j in $elements ; do
121
- [ $(( j % 100 )) = 0 ] && get_a_arr_keys -s test_arr testvar
134
+ [ $(( j % 10 )) = 0 ] && get_a_arr_keys -s test_arr testvar
122
135
set_a_arr_el test_arr " $(( j)) =$test_str " ; # echo "setting $((j+1))"
123
136
set_a_arr_el test_arr " $(( j* 2 )) =$test_str " ; # echo "setting $((j+1))"
124
- unset_a_arr_el test_arr " $(( j)) " ; # echo "unsetting $((j))"
137
+ # unset_a_arr_el test_arr "$((j))"; #echo "unsetting $((j))"
125
138
done
126
139
# set_${arr_type}_arr_val test_arr "$i" "$test_str"
127
140
# add_${arr_type}_arr_el test_arr "$test_str"
@@ -166,12 +179,16 @@ get_date() {
166
179
measure_time () {
167
180
exec_command=" $1 " ; description=" ${1# test_} " ; shift
168
181
__args=" $* "
182
+ # get_${arr_type}_arr_el_cnt test_arr rescnt
169
183
$time_func
170
184
start_time=" $curr_time "
171
185
# shellcheck disable=SC2086
172
186
$exec_command $__args
173
187
$time_func
174
- echo " $description time: $(( curr_time - start_time )) ms"
188
+ echo " *** $description time: $(( curr_time - start_time )) ms"
189
+ # echo "Initial elements count: $rescnt"
190
+ # get_${arr_type}_arr_el_cnt test_arr rescnt
191
+ # echo "Resulting elements count: $rescnt"; echo
175
192
unset curr_time
176
193
}
177
194
@@ -201,6 +218,7 @@ case $arr_type in
201
218
esac
202
219
203
220
test_str=" a b; 'c%d^e#fh2uyuIJKlk/*-+UnapTg#@! %% " # string used to assign to elements
221
+ test_key_str=" abcdefghijklmn"
204
222
205
223
# Warmup
206
224
f=1 # first element
@@ -235,9 +253,14 @@ measure_time test_unset
235
253
test_set
236
254
measure_time test_unset_rev
237
255
256
+ test_unset_all
238
257
test_set
239
258
measure_time test_unset_rev_mid
240
259
260
+ test_unset_all
261
+ test_set
262
+ measure_time test_unset_mid
263
+
241
264
measure_time test_mixed
242
265
243
266
test_unset_all
@@ -247,14 +270,6 @@ test_unset_all
247
270
} || test_set
248
271
249
272
250
- if [ " $arr_type " = " i" ]; then
251
- unset_i_arr_el test_arr " $(( l- 3 )) "
252
- set_i_arr_el test_arr " $(( l- 3 )) " " $test_str "
253
- else
254
- unset_a_arr_el test_arr " bcdefghijklmn$(( l- 3 )) "
255
- set_a_arr_el test_arr " bcdefghijklmn$(( l- 3 )) =$test_str "
256
- fi
257
-
258
273
measure_time test_unset_all
259
274
260
275
0 commit comments