From 4592b969dec8bbf2fdf430cd8ccf2e73274d3b69 Mon Sep 17 00:00:00 2001 From: jingkl <34296482+jingkl@users.noreply.github.com> Date: Wed, 14 Dec 2022 14:55:30 +0800 Subject: [PATCH] [test]Modify the search list testcase of diskann (#21183) Signed-off-by: jingkl Signed-off-by: jingkl --- tests/python_client/testcases/test_search.py | 72 ++++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/tests/python_client/testcases/test_search.py b/tests/python_client/testcases/test_search.py index 7bbfdb9662..b0074af922 100644 --- a/tests/python_client/testcases/test_search.py +++ b/tests/python_client/testcases/test_search.py @@ -4266,14 +4266,45 @@ class TestsearchDiskann(TestcaseBase): ) @pytest.mark.tags(CaseLabel.L2) - @pytest.mark.parametrize("limit", [20]) - @pytest.mark.parametrize("search_list", [10, 201]) + @pytest.mark.parametrize("limit", [1]) + @pytest.mark.parametrize("search_list", [-1, 0, 201]) def test_search_invalid_params_with_diskann_A(self, dim, auto_id, search_list, limit): """ target: test delete after creating index method: 1.create collection , insert data, primary_field is int field 2.create diskann index - 3.search with invalid params, where topk <=20, search list (topk, 200] + 3.search with invalid params, where topk <=20, search list [topk, 200] + expected: search report an error + """ + # 1. initialize with data + collection_w, _, _, insert_ids = \ + self.init_collection_general(prefix, True, auto_id=auto_id, dim=dim, is_index=True)[0:4] + # 2. create index + default_index = {"index_type": "DISKANN", "metric_type":"L2", "params": {}} + collection_w.create_index(ct.default_float_vec_field_name, default_index) + collection_w.load() + default_search_params ={"metric_type": "L2", "params": {"search_list": search_list}} + vectors = [[random.random() for _ in range(dim)] for _ in range(default_nq)] + output_fields = [default_int64_field_name, default_float_field_name, default_string_field_name] + collection_w.search(vectors[:default_nq], default_search_field, + default_search_params, limit, + default_search_exp, + output_fields=output_fields, + travel_timestamp=0, + check_task=CheckTasks.err_res, + check_items={"err_code": 1, + "err_msg": "fail to search on all shard leaders"} + ) + + @pytest.mark.tags(CaseLabel.L2) + @pytest.mark.parametrize("limit", [20]) + @pytest.mark.parametrize("search_list", [19, 201]) + def test_search_invalid_params_with_diskann_B(self, dim, auto_id, search_list, limit): + """ + target: test delete after creating index + method: 1.create collection , insert data, primary_field is int field + 2.create diskann index + 3.search with invalid params, [k, 200] when k <= 20 expected: search report an error """ # 1. initialize with data @@ -4298,44 +4329,13 @@ class TestsearchDiskann(TestcaseBase): @pytest.mark.tags(CaseLabel.L2) @pytest.mark.parametrize("limit", [6553]) - @pytest.mark.parametrize("search_list", [6553, 65531]) - def test_search_invalid_params_with_diskann_B(self, dim, auto_id, search_list, limit): - """ - target: test delete after creating index - method: 1.create collection , insert data, primary_field is int field - 2.create diskann index - 3.search with invalid params, where 20< topk <= 6553, search list (topk, topk * 10] - expected: search report an error - """ - # 1. initialize with data - collection_w, _, _, insert_ids = \ - self.init_collection_general(prefix, True, auto_id=auto_id, dim=dim, is_index=True)[0:4] - # 2. create index - default_index = {"index_type": "DISKANN", "metric_type":"L2", "params": {}} - collection_w.create_index(ct.default_float_vec_field_name, default_index) - collection_w.load() - default_search_params ={"metric_type": "L2", "params": {"search_list": search_list}} - vectors = [[random.random() for _ in range(dim)] for _ in range(default_nq)] - output_fields = [default_int64_field_name, default_float_field_name, default_string_field_name] - collection_w.search(vectors[:default_nq], default_search_field, - default_search_params, limit, - default_search_exp, - output_fields=output_fields, - travel_timestamp=0, - check_task=CheckTasks.err_res, - check_items={"err_code": 1, - "err_msg": "fail to search on all shard leaders"} - ) - - @pytest.mark.tags(CaseLabel.L2) - @pytest.mark.parametrize("limit", [6554]) - @pytest.mark.parametrize("search_list", [6554, 65536]) + @pytest.mark.parametrize("search_list", [6550, 65536]) def test_search_invalid_params_with_diskann_C(self, dim, auto_id, search_list, limit): """ target: test delete after creating index method: 1.create collection , insert data, primary_field is int field 2.create diskann index - 3.search with invalid params, where topk > 6553, search list (topk, 65535] + 3.search with invalid params , [k, min( 10 * topk, 65535)] when k > 20 expected: search report an error """ # 1. initialize with data