aboutsummaryrefslogtreecommitdiffstats
path: root/build/plugins/tests/test_common.py
diff options
context:
space:
mode:
authoralexv-smirnov <alex@ydb.tech>2023-03-15 19:59:12 +0300
committeralexv-smirnov <alex@ydb.tech>2023-03-15 19:59:12 +0300
commit056bb284ccf8dd6793ec3a54ffa36c4fb2b9ad11 (patch)
tree4740980126f32e3af7937ba0ca5f83e59baa4ab0 /build/plugins/tests/test_common.py
parent269126dcced1cc8b53eb4398b4a33e5142f10290 (diff)
downloadydb-056bb284ccf8dd6793ec3a54ffa36c4fb2b9ad11.tar.gz
add library/cpp/actors, ymake build to ydb oss export
Diffstat (limited to 'build/plugins/tests/test_common.py')
-rw-r--r--build/plugins/tests/test_common.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/build/plugins/tests/test_common.py b/build/plugins/tests/test_common.py
new file mode 100644
index 0000000000..e1780354f8
--- /dev/null
+++ b/build/plugins/tests/test_common.py
@@ -0,0 +1,49 @@
+import pytest
+
+import build.plugins._common as pc
+
+
+def test_sort_by_keywords():
+ keywords = {'KEY1': 2, 'KEY2': 0, 'KEY3': 1}
+ args = 'aaaa bbbb KEY2 KEY1 kkk10 kkk11 ccc ddd KEY3 kkk3 eee'.split()
+ flat, spec = pc.sort_by_keywords(keywords, args)
+ assert flat == ['aaaa', 'bbbb', 'ccc', 'ddd', 'eee']
+ assert spec == {'KEY1': ['kkk10', 'kkk11'], 'KEY2': True, 'KEY3': ['kkk3']}
+
+ keywords = {'KEY1': 0, 'KEY2': 4}
+ args = 'aaaa KEY2 eee'.split()
+ flat, spec = pc.sort_by_keywords(keywords, args)
+ assert flat == ['aaaa']
+ assert spec == {'KEY2': ['eee']}
+
+ keywords = {'KEY1': 2, 'KEY2': 2}
+ args = 'KEY1 k10 KEY2 k20 KEY1 k11 KEY2 k21 KEY1 k13'.split()
+ flat, spec = pc.sort_by_keywords(keywords, args)
+ assert flat == []
+ assert spec == {'KEY1': ['k10', 'k11', 'k13'], 'KEY2': ['k20', 'k21']}
+
+
+def test_filter_out_by_keyword():
+ assert pc.filter_out_by_keyword([], 'A') == []
+ assert pc.filter_out_by_keyword(['x'], 'A') == ['x']
+ assert pc.filter_out_by_keyword(['x', 'A'], 'A') == ['x']
+ assert pc.filter_out_by_keyword(['x', 'A', 'B'], 'A') == ['x']
+ assert pc.filter_out_by_keyword(['x', 'A', 'B', 'y'], 'A') == ['x', 'y']
+ assert pc.filter_out_by_keyword(['x', 'A', 'A', 'y'], 'A') == ['x', 'y']
+ assert pc.filter_out_by_keyword(['x', 'A', 'A', 'A'], 'A') == ['x']
+ assert pc.filter_out_by_keyword(['x', 'A', 'A', 'A', 'B', 'y'], 'A') == ['x', 'y']
+ assert pc.filter_out_by_keyword(['x', 'A', 'A', 'A', 'B', 'y', 'A'], 'A') == ['x', 'y']
+ assert pc.filter_out_by_keyword(['x', 'A', 'A', 'A', 'B', 'y', 'A', 'F', 'z'], 'A') == ['x', 'y', 'z']
+
+
+test_data = [
+ [[1, 2, 3], 1, [[1], [2], [3]]],
+ [[1, 2, 3], 2, [[1, 2], [3]]],
+ [[1, 2, 3, 4], 2, [[1, 2], [3, 4]]],
+ [[1], 5, [[1]]],
+]
+
+
+@pytest.mark.parametrize('lst, chunk_size, expected', test_data, ids=[str(num + 1) for num in range(len(test_data))])
+def test_generate_chunks(lst, chunk_size, expected):
+ assert list(pc.generate_chunks(lst, chunk_size)) == expected