diff tests/farray-array.t @ 749:e8eb5e7ceb37

farray.sh: Implement binary lexicographical search in "farray_binsearch()". While there disable SC3012 in shellcheck because FreeBSD's /bin/sh supports lexicographical comparisons in "test".
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 10 Oct 2024 13:27:50 +0200
parents 6787e216285e
children 4101e755b3e7
line wrap: on
line diff
--- a/tests/farray-array.t	Wed Oct 09 22:56:11 2024 +0200
+++ b/tests/farray-array.t	Thu Oct 10 13:27:50 2024 +0200
@@ -1266,6 +1266,198 @@
   $ check_no_array_artifacts
 
 
+Binary Search
+=============
+
+  $ farray_create TEST
+  $ farray_binsearch _var TEST 1
+  [1]
+  $ farray_release TEST
+  $ check_no_array_artifacts
+
+  $ farray_create TEST 2
+  $ farray_binsearch _var TEST 1
+  [1]
+  $ farray_binsearch _var TEST 2
+  $ echo ${_var}
+  1
+  $ farray_binsearch _var TEST 3
+  [1]
+  $ farray_release TEST
+  $ check_no_array_artifacts
+
+  $ farray_create TEST 2 4
+  $ farray_binsearch _var TEST 1
+  [1]
+  $ farray_binsearch _var TEST 2
+  $ echo ${_var}
+  1
+  $ farray_binsearch _var TEST 3
+  [1]
+  $ farray_binsearch _var TEST 4
+  $ echo ${_var}
+  2
+  $ farray_binsearch _var TEST 5
+  [1]
+  $ farray_release TEST
+  $ check_no_array_artifacts
+
+  $ farray_create TEST 2 4 6
+  $ farray_binsearch _var TEST 1
+  [1]
+  $ farray_binsearch _var TEST 2
+  $ echo ${_var}
+  1
+  $ farray_binsearch _var TEST 3
+  [1]
+  $ farray_binsearch _var TEST 4
+  $ echo ${_var}
+  2
+  $ farray_binsearch _var TEST 5
+  [1]
+  $ farray_binsearch _var TEST 6
+  $ echo ${_var}
+  3
+  $ farray_binsearch _var TEST 7
+  [1]
+  $ farray_release TEST
+  $ check_no_array_artifacts
+
+  $ farray_create TEST 2 4 6 8
+  $ farray_binsearch _var TEST 1
+  [1]
+  $ farray_binsearch _var TEST 2
+  $ echo ${_var}
+  1
+  $ farray_binsearch _var TEST 3
+  [1]
+  $ farray_binsearch _var TEST 4
+  $ echo ${_var}
+  2
+  $ farray_binsearch _var TEST 5
+  [1]
+  $ farray_binsearch _var TEST 6
+  $ echo ${_var}
+  3
+  $ farray_binsearch _var TEST 7
+  [1]
+  $ farray_binsearch _var TEST 8
+  $ echo ${_var}
+  4
+  $ farray_binsearch _var TEST 9
+  [1]
+  $ farray_release TEST
+  $ check_no_array_artifacts
+
+  $ farray_create TEST 2 4 6 8 88
+  $ farray_binsearch _var TEST 1
+  [1]
+  $ farray_binsearch _var TEST 2
+  $ echo ${_var}
+  1
+  $ farray_binsearch _var TEST 3
+  [1]
+  $ farray_binsearch _var TEST 4
+  $ echo ${_var}
+  2
+  $ farray_binsearch _var TEST 5
+  [1]
+  $ farray_binsearch _var TEST 6
+  $ echo ${_var}
+  3
+  $ farray_binsearch _var TEST 7
+  [1]
+  $ farray_binsearch _var TEST 8
+  $ echo ${_var}
+  4
+  $ farray_binsearch _var TEST 87
+  [1]
+  $ farray_binsearch _var TEST 88
+  $ echo ${_var}
+  5
+  $ farray_binsearch _var TEST 888
+  [1]
+  $ farray_release TEST
+  $ check_no_array_artifacts
+
+  $ farray_create TEST 2 4 6 8 88 8888
+  $ farray_binsearch _var TEST 1
+  [1]
+  $ farray_binsearch _var TEST 2
+  $ echo ${_var}
+  1
+  $ farray_binsearch _var TEST 3
+  [1]
+  $ farray_binsearch _var TEST 4
+  $ echo ${_var}
+  2
+  $ farray_binsearch _var TEST 5
+  [1]
+  $ farray_binsearch _var TEST 6
+  $ echo ${_var}
+  3
+  $ farray_binsearch _var TEST 7
+  [1]
+  $ farray_binsearch _var TEST 8
+  $ echo ${_var}
+  4
+  $ farray_binsearch _var TEST 87
+  [1]
+  $ farray_binsearch _var TEST 88
+  $ echo ${_var}
+  5
+  $ farray_binsearch _var TEST 888
+  [1]
+  $ farray_binsearch _var TEST 8888
+  $ echo ${_var}
+  6
+  $ farray_binsearch _var TEST 88888
+  [1]
+  $ farray_release TEST
+  $ check_no_array_artifacts
+
+  $ farray_create TEST 2 4 6 8 88 8888 9
+  $ farray_binsearch _var TEST 1
+  [1]
+  $ farray_binsearch _var TEST 2
+  $ echo ${_var}
+  1
+  $ farray_binsearch _var TEST 3
+  [1]
+  $ farray_binsearch _var TEST 4
+  $ echo ${_var}
+  2
+  $ farray_binsearch _var TEST 5
+  [1]
+  $ farray_binsearch _var TEST 6
+  $ echo ${_var}
+  3
+  $ farray_binsearch _var TEST 7
+  [1]
+  $ farray_binsearch _var TEST 8
+  $ echo ${_var}
+  4
+  $ farray_binsearch _var TEST 87
+  [1]
+  $ farray_binsearch _var TEST 88
+  $ echo ${_var}
+  5
+  $ farray_binsearch _var TEST 888
+  [1]
+  $ farray_binsearch _var TEST 8888
+  $ echo ${_var}
+  6
+  $ farray_binsearch _var TEST 88888
+  [1]
+  $ farray_binsearch _var TEST 9
+  $ echo ${_var}
+  7
+  $ farray_binsearch _var TEST 99
+  [1]
+  $ farray_release TEST
+  $ check_no_array_artifacts
+
+
 Generic Destruction
 ===================