Skip to content

Commit b626f2e

Browse files
committed
Added tests Dict2ListOfDicts
1 parent e3f5195 commit b626f2e

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed

lib/utils.vim

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,20 @@ export def Echowarn(msg: string)
88
echohl WarningMsg | echom $'[markdown_extras] {msg}' | echohl None
99
enddef
1010

11+
export def DictToListOfDicts(d: dict<any>): list<dict<any>>
12+
# Convert a dict in a list of dict.
13+
#
14+
# Dor example, {a: 'foo', b: 'bar', c: 'baz'} becomes
15+
# [{a: 'foo'}, {b: 'bar'}, {c: 'baz'}]
16+
#
17+
var list_of_dicts = []
18+
for [k, v] in items(d)
19+
add(list_of_dicts, {[k]: v})
20+
endfor
21+
return list_of_dicts
22+
enddef
23+
24+
1125
export def ZipLists(l1: list<any>, l2: list<any>): list<list<any>>
1226
# Zip function, like in Python
1327
var min_len = min([len(l1), len(l2)])
@@ -164,15 +178,8 @@ export def Surround(open_delimiter: string,
164178
unlet close_delim_leftovers[close_string]
165179

166180
# We need a list-of-dicts [{a: 'foo'}, {b: 'bar'}, {c: 'baz'}]
167-
var open_delim_leftovers_list = []
168-
for [k, v] in items(open_delim_leftovers)
169-
add(open_delim_leftovers_list, {[k]: v})
170-
endfor
171-
var close_delim_leftovers_list = []
172-
for [k, v] in items(close_delim_leftovers)
173-
add(close_delim_leftovers_list, {[k]: v})
174-
endfor
175-
echom "close_delim_leftovers_list: " .. string(close_delim_leftovers_list)
181+
var open_delim_leftovers_list = DictToListOfDicts(open_delim_leftovers)
182+
var close_delim_leftovers_list = DictToListOfDicts(close_delim_leftovers)
176183

177184
# Check if A falls in an existing interval
178185
var found_delimiters_interval = []

test/test_utils.vim

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,3 +326,12 @@ def g:Test_RegexList2RegexOR()
326326
actual_string = utils.RegexList2RegexOR(test_list)
327327
assert_equal(expected_string, actual_string)
328328
enddef
329+
330+
def g:Test_Dict2ListOfDicts()
331+
332+
var my_dict = {a: 'foo', b: 'bar', c: 'baz'}
333+
var expected_value = [{a: 'foo'}, {b: 'bar'}, {c: 'baz'}]
334+
var actual_value = utils.DictToListOfDicts(my_dict)
335+
assert_equal(expected_value, actual_value)
336+
337+
enddef

0 commit comments

Comments
 (0)