annotate tests/farray-misc.t @ 731:cf0f18d3d41b

farray.sh: more thorough checks when numbers are octal
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 07 Oct 2024 13:26:25 +0200
parents ce29bad1fd3b
children c14c7b5b5fea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
588
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
1 Basic tests of farray.sh's internal helper functions
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
2
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
3 Shell is /bin/sh.
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
4
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
5
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
6 Setup
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
7 =====
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
8
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
9 $ set -u
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
10 $ . "${TESTDIR}/testsetup.sh"
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
11 $ _p_datadir="${TESTDIR}/../share/local-bsdtools"
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
12 $ . "${_p_datadir}/farray.sh"
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
13
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
14
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
15 Plain Decimal Number Checks
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
16 ===========================
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
17
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
18 Valid
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
19 -----
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
20
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
21 $ _farr_is_decimal_number 0
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
22 $ _farr_is_decimal_number 12345678901234567890
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
23 $ _farr_is_decimal_number -12345678901234567890
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
24 $ _farr_is_decimal_number +12345678901234567890
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
25
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
26 Octal
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
27
731
cf0f18d3d41b farray.sh: more thorough checks when numbers are octal
Franz Glasner <fzglas.hg@dom66.de>
parents: 590
diff changeset
28 $ _farr_is_decimal_number 01234567012345670
cf0f18d3d41b farray.sh: more thorough checks when numbers are octal
Franz Glasner <fzglas.hg@dom66.de>
parents: 590
diff changeset
29 $ _farr_is_decimal_number -01234567012345670
cf0f18d3d41b farray.sh: more thorough checks when numbers are octal
Franz Glasner <fzglas.hg@dom66.de>
parents: 590
diff changeset
30 $ _farr_is_decimal_number +01234567012345670
cf0f18d3d41b farray.sh: more thorough checks when numbers are octal
Franz Glasner <fzglas.hg@dom66.de>
parents: 590
diff changeset
31
588
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
32
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
33 Invalid
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
34 -------
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
35
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
36 $ _farr_is_decimal_number x
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
37 [1]
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
38 $ _farr_is_decimal_number ''
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
39 [1]
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
40 $ _farr_is_decimal_number '+'
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
41 [1]
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
42 $ _farr_is_decimal_number '-'
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
43 [1]
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
44 $ _farr_is_decimal_number '0x1'
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
45 [1]
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
46 $ _farr_is_decimal_number *12345678901234567890
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
47 [1]
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
48 $ _farr_is_decimal_number 0x0123456789abcdef
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
49 [1]
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
50 $ _farr_is_decimal_number 0123456789abcdef
fb7e5cd69494 farray.sh: implement _farr_is_decimal_number() to prepare for more thorough index checks
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
51 [1]
731
cf0f18d3d41b farray.sh: more thorough checks when numbers are octal
Franz Glasner <fzglas.hg@dom66.de>
parents: 590
diff changeset
52 $ _farr_is_decimal_number 01234567890
cf0f18d3d41b farray.sh: more thorough checks when numbers are octal
Franz Glasner <fzglas.hg@dom66.de>
parents: 590
diff changeset
53 [1]
cf0f18d3d41b farray.sh: more thorough checks when numbers are octal
Franz Glasner <fzglas.hg@dom66.de>
parents: 590
diff changeset
54 $ _farr_is_decimal_number -01234567890
cf0f18d3d41b farray.sh: more thorough checks when numbers are octal
Franz Glasner <fzglas.hg@dom66.de>
parents: 590
diff changeset
55 [1]
cf0f18d3d41b farray.sh: more thorough checks when numbers are octal
Franz Glasner <fzglas.hg@dom66.de>
parents: 590
diff changeset
56 $ _farr_is_decimal_number +01234567890
cf0f18d3d41b farray.sh: more thorough checks when numbers are octal
Franz Glasner <fzglas.hg@dom66.de>
parents: 590
diff changeset
57 [1]
590
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
58
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
59
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
60 Index Checks
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
61 ============
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
62
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
63 $ _farr_make_index _res 5
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
64 $ echo $_res
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
65 5
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
66
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
67 $ _farr_make_index _res "" 123
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
68 $ echo $_res
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
69 124
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
70
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
71 $ _farr_make_index _res 0 123
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
72 $ echo $_res
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
73 123
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
74
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
75 $ _farr_make_index _res -122 123
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
76 $ echo $_res
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
77 1
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
78
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
79 $ _farr_make_index _res -123 123
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
80 $ echo $_res
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
81 0
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
82
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
83 $ _farr_make_index _res 124 123
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
84 $ echo $_res
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
85 124
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
86
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
87 $ _farr_make_index _res 125 123
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
88 $ echo $_res
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
89 125
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
90
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
91 $ ( _farr_make_index _res 0 )
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
92 ERROR: cannot compute effective index because no length is given
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
93 [70]
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
94
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
95 $ ( _farr_make_index _res "" )
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
96 ERROR: length not given: cannot autocompute index
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
97 [70]
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
98
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
99 $ ( _farr_make_index _res 0x1 )
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
100 ERROR: given index is not a valid decimal number
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
101 [70]
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
102
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
103 $ ( _farr_make_index _res 0 0x1 )
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
104 ERROR: given length is not a valid decimal number
ce29bad1fd3b farray.sh: Implement _farr_make_index().
Franz Glasner <fzglas.hg@dom66.de>
parents: 588
diff changeset
105 [70]