Skip to content

Commit d398f0f

Browse files
add index method in utils, add unittests
1 parent 1720d67 commit d398f0f

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

pysenal/utils/utils.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,19 @@ def get_filenames_in_dir(dirname,
9595

9696
filenames = sorted(filenames)
9797
return filenames
98+
99+
100+
def index(l, val, default=-1):
101+
"""
102+
find the index the val in list
103+
:param l: index list
104+
:param val: value to find index
105+
:param default: default value to return that value not in list
106+
:return: value index in list
107+
"""
108+
if type(l) not in {list, tuple}:
109+
raise TypeError('value is not in index')
110+
if val not in l:
111+
return default
112+
else:
113+
return l.index(val)

tests/utils/test_utils.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,12 @@ def test_get_filename_in_dir(get_filename_dir_setup, get_filename_dirname):
9595
ret3 = get_filenames_in_dir(dirname, rm_extname=True, skip_hidden_file=False)
9696
expected_ret3 = [dirname + '.file3', dirname + '.file4', dirname + 'file1', dirname + 'file2']
9797
assert ret3 == expected_ret3
98+
99+
100+
def test_index():
101+
values = [1, 2, 3, 4, 5]
102+
assert index(values, 2) == 1
103+
assert index(values, 6) == -1
104+
assert index(values, 6, default=100) == 100
105+
with pytest.raises(TypeError):
106+
index(10,10)

0 commit comments

Comments
 (0)