From e89a707d6cd06dc299adda1a0156279f3ca7b016 Mon Sep 17 00:00:00 2001 From: ThreadDao Date: Mon, 24 Aug 2020 10:04:10 +0800 Subject: [PATCH] [skip ci] Test get entity by id (#3417) * [skip ci] update for Contasts Signed-off-by: zongyufen * [skip ci] test get entity by id Signed-off-by: zongyufen * [skip ci] test get entity by id Signed-off-by: zongyufen --- .../src/main/java/com/Constants.java | 4 + .../main/java/com/TestCollectionCount.java | 17 +- .../src/main/java/com/TestCollectionInfo.java | 25 +-- .../src/main/java/com/TestCompact.java | 15 +- .../src/main/java/com/TestFlush.java | 39 ++-- .../src/main/java/com/TestGetEntityByID.java | 184 +++++++++--------- 6 files changed, 117 insertions(+), 167 deletions(-) diff --git a/tests/milvus-java-test/src/main/java/com/Constants.java b/tests/milvus-java-test/src/main/java/com/Constants.java index 09aab3d8..9ebd2f09 100644 --- a/tests/milvus-java-test/src/main/java/com/Constants.java +++ b/tests/milvus-java-test/src/main/java/com/Constants.java @@ -32,6 +32,10 @@ public final class Constants { public static final List vectorsBinary = Utils.genBinaryVectors(nb, dimension); + public static final List> defaultFields = Utils.genDefaultFields(dimension,false); + + public static final List> defaultBinaryFields = Utils.genDefaultFields(dimension,true); + public static final List> defaultEntities = Utils.genDefaultEntities(dimension, nb, vectors); public static final List> defaultBinaryEntities = Utils.genDefaultBinaryEntities(dimension, nb, vectorsBinary); diff --git a/tests/milvus-java-test/src/main/java/com/TestCollectionCount.java b/tests/milvus-java-test/src/main/java/com/TestCollectionCount.java index f1fd6dc0..5ce1ccbf 100644 --- a/tests/milvus-java-test/src/main/java/com/TestCollectionCount.java +++ b/tests/milvus-java-test/src/main/java/com/TestCollectionCount.java @@ -3,19 +3,12 @@ package com; import io.milvus.client.*; import org.testng.Assert; import org.testng.annotations.Test; - -import java.nio.ByteBuffer; import java.util.List; -import java.util.Map; public class TestCollectionCount { int segmentRowCount = 5000; - int dimension = 128; - int nb = 10000; - List> vectors = Utils.genVectors(nb, dimension, true); - List vectorsBinary = Utils.genBinaryVectors(nb, dimension); - List> defaultEntities = Utils.genDefaultEntities(dimension,nb,vectors); - List> defaultBinaryEntities = Utils.genDefaultBinaryEntities(dimension,nb,vectorsBinary); + int dimension = Constants.dimension; + int nb = Constants.nb; @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) public void testCollectionCountNoVectors(MilvusClient client, String collectionName) { @@ -39,7 +32,7 @@ public class TestCollectionCount { InsertParam insertParam = new InsertParam.Builder(collectionName) - .withFields(defaultEntities) + .withFields(Constants.defaultEntities) .build(); InsertResponse insertResponse = client.insert(insertParam); // Insert returns a list of entity ids that you will be using (if you did not supply the yourself) to reference the entities you just inserted @@ -54,7 +47,7 @@ public class TestCollectionCount { public void testCollectionCountBinary(MilvusClient client, String collectionName) throws InterruptedException { // Add vectors InsertParam insertParam = new InsertParam.Builder(collectionName) - .withFields(defaultBinaryEntities) + .withFields(Constants.defaultBinaryEntities) .build(); client.insert(insertParam); client.flush(collectionName); @@ -75,7 +68,7 @@ public class TestCollectionCount { Assert.assertEquals(cteateRes.ok(), true); // Add vectors InsertParam insertParam = new InsertParam.Builder(collectionNameNew) - .withFields(defaultEntities) + .withFields(Constants.defaultEntities) .build(); InsertResponse insertRes = client.insert(insertParam); Assert.assertEquals(insertRes.ok(), true); diff --git a/tests/milvus-java-test/src/main/java/com/TestCollectionInfo.java b/tests/milvus-java-test/src/main/java/com/TestCollectionInfo.java index 2d95d949..03f64dde 100644 --- a/tests/milvus-java-test/src/main/java/com/TestCollectionInfo.java +++ b/tests/milvus-java-test/src/main/java/com/TestCollectionInfo.java @@ -1,34 +1,19 @@ - package com; import com.alibaba.fastjson.JSONObject; import io.milvus.client.*; - import org.testng.annotations.Test; -import java.nio.ByteBuffer; import java.util.Collections; import java.util.List; -import java.util.Map; public class TestCollectionInfo { - int dimension = 128; - int nb = 8000; - int nList = 1024; - int defaultNList = 16384; - String indexType = "IVF_SQ8"; - String defaultIndexType = "FLAT"; - String metricType = "L2"; - String indexParam = Utils.setIndexParam(indexType,metricType,nList); - List> vectors = Utils.genVectors(nb, dimension, true); - List vectorsBinary = Utils.genBinaryVectors(nb, dimension); - List> defaultEntities = Utils.genDefaultEntities(dimension,nb,vectors); - List> defaultBinaryEntities = Utils.genDefaultBinaryEntities(dimension,nb,vectorsBinary); + int nb = Constants.nb; @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) public void testGetEntityIdsAfterDeleteEntities(MilvusClient client, String collectionName) { InsertParam insertParam = new InsertParam.Builder(collectionName) - .withFields(defaultEntities) + .withFields(Constants.defaultEntities) .build(); InsertResponse resInsert = client.insert(insertParam); client.flush(collectionName); @@ -45,12 +30,12 @@ public class TestCollectionInfo { @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) public void testGetEntityIdsAterDeleteEntitiesIndexed(MilvusClient client, String collectionName) { InsertParam insertParam = new InsertParam.Builder(collectionName) - .withFields(defaultEntities) + .withFields(Constants.defaultEntities) .build(); InsertResponse resInsert = client.insert(insertParam); client.flush(collectionName); Index index = new Index.Builder(collectionName, "float_vector") - .withParamsInJson(indexParam).build(); + .withParamsInJson(Constants.indexParam).build(); Response createIndexResponse = client.createIndex(index); assert(createIndexResponse.ok()); List idsBefore = resInsert.getEntityIds(); @@ -66,7 +51,7 @@ public class TestCollectionInfo { @Test(dataProvider = "BinaryCollection", dataProviderClass = MainClass.class) public void testGetEntityIdsAfterDeleteEntitiesBinary(MilvusClient client, String collectionName) { InsertParam insertParam = new InsertParam.Builder(collectionName) - .withFields(defaultBinaryEntities) + .withFields(Constants.defaultBinaryEntities) .build(); InsertResponse resInsert = client.insert(insertParam); client.flush(collectionName); diff --git a/tests/milvus-java-test/src/main/java/com/TestCompact.java b/tests/milvus-java-test/src/main/java/com/TestCompact.java index ac9a1193..87dcee21 100644 --- a/tests/milvus-java-test/src/main/java/com/TestCompact.java +++ b/tests/milvus-java-test/src/main/java/com/TestCompact.java @@ -3,23 +3,12 @@ package com; import io.milvus.client.*; import org.testng.Assert; import org.testng.annotations.Test; - -import java.nio.ByteBuffer; import java.util.List; -import java.util.Map; public class TestCompact { - - int dimension = 128; - int nb = 8000; - List> vectors = Utils.genVectors(nb, dimension, true); - List vectorsBinary = Utils.genBinaryVectors(nb, dimension); - List> defaultEntities = Utils.genDefaultEntities(dimension,nb,vectors); - List> defaultBinaryEntities = Utils.genDefaultBinaryEntities(dimension,nb,vectorsBinary); - @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) public void testCompactAfterDelete(MilvusClient client, String collectionName) { - InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(defaultEntities).build(); + InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(Constants.defaultEntities).build(); InsertResponse res = client.insert(insertParam); assert(res.getResponse().ok()); List ids = res.getEntityIds(); @@ -37,7 +26,7 @@ public class TestCompact { @Test(dataProvider = "BinaryCollection", dataProviderClass = MainClass.class) public void testCompactAfterDeleteBinary(MilvusClient client, String collectionName) { - InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(defaultBinaryEntities).build(); + InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(Constants.defaultBinaryEntities).build(); InsertResponse res = client.insert(insertParam); assert(res.getResponse().ok()); List ids = res.getEntityIds(); diff --git a/tests/milvus-java-test/src/main/java/com/TestFlush.java b/tests/milvus-java-test/src/main/java/com/TestFlush.java index e04dceb7..c356fd47 100644 --- a/tests/milvus-java-test/src/main/java/com/TestFlush.java +++ b/tests/milvus-java-test/src/main/java/com/TestFlush.java @@ -1,33 +1,19 @@ package com; import com.google.common.util.concurrent.ListenableFuture; - -import java.util.Map; import java.util.concurrent.ExecutionException; import io.milvus.client.*; - import org.apache.commons.lang3.RandomStringUtils; import org.testng.Assert; import org.testng.annotations.Test; - -import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; public class TestFlush { int segmentRowCount = 50; - int dimension = 128; - int nb = 8000; - - List> vectors = Utils.genVectors(nb, dimension, true); - List vectorsBinary = Utils.genBinaryVectors(nb, dimension); - List> defaultFields = Utils.genDefaultFields(dimension,false); - List> defaultEntities = Utils.genDefaultEntities(dimension,nb,vectors); - List> defaultBinaryEntities = Utils.genDefaultBinaryEntities(dimension,nb,vectorsBinary); - - + int nb = Constants.nb; - @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) + @Test(dataProvider = "ConnectInstance", dataProviderClass = MainClass.class) public void testFlushCollectionNotExisted(MilvusClient client, String collectionName) { String newCollection = "not_existed"; Response res = client.flush(newCollection); @@ -40,39 +26,40 @@ public class TestFlush { assert(res.ok()); } - @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) + @Test(dataProvider = "ConnectInstance", dataProviderClass = MainClass.class) public void testAddCollectionsFlush(MilvusClient client, String collectionName) { List names = new ArrayList<>(); - for (int i = 0; i < 10; i++) { + int collectionNum = 10; + for (int i = 0; i < collectionNum; i++) { names.add(RandomStringUtils.randomAlphabetic(10)); CollectionMapping collectionSchema = new CollectionMapping.Builder(names.get(i)) - .withFields(defaultFields) + .withFields(Constants.defaultFields) .withParamsInJson(String.format("{\"segment_row_count\": %s}",segmentRowCount)) .build(); client.createCollection(collectionSchema); - InsertParam insertParam = new InsertParam.Builder(names.get(i)).withFields(defaultEntities).build(); + InsertParam insertParam = new InsertParam.Builder(names.get(i)).withFields(Constants.defaultEntities).build(); client.insert(insertParam); System.out.println("Table " + names.get(i) + " created."); } Response res = client.flush(names); assert(res.ok()); - for (int i = 0; i < 10; i++) { + for (int i = 0; i < collectionNum; i++) { // check row count Assert.assertEquals(client.countEntities(names.get(i)).getCollectionEntityCount(), nb); } } - @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) + @Test(dataProvider = "ConnectInstance", dataProviderClass = MainClass.class) public void testAddCollectionsFlushAsync(MilvusClient client, String collectionName) throws ExecutionException, InterruptedException { List names = new ArrayList<>(); for (int i = 0; i < 100; i++) { names.add(RandomStringUtils.randomAlphabetic(10)); CollectionMapping collectionSchema = new CollectionMapping.Builder(names.get(i)) - .withFields(defaultFields) + .withFields(Constants.defaultFields) .withParamsInJson(String.format("{\"segment_row_count\": %s}",segmentRowCount)) .build(); client.createCollection(collectionSchema); - InsertParam insertParam = new InsertParam.Builder(names.get(i)).withFields(defaultEntities).build(); + InsertParam insertParam = new InsertParam.Builder(names.get(i)).withFields(Constants.defaultEntities).build(); client.insert(insertParam); System.out.println("Collection " + names.get(i) + " created."); } @@ -87,7 +74,7 @@ public class TestFlush { @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) public void testAddFlushMultipleTimes(MilvusClient client, String collectionName) { for (int i = 0; i < 10; i++) { - InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(defaultEntities).build(); + InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(Constants.defaultEntities).build(); client.insert(insertParam); Response res = client.flush(collectionName); assert(res.ok()); @@ -98,7 +85,7 @@ public class TestFlush { @Test(dataProvider = "BinaryCollection", dataProviderClass = MainClass.class) public void testAddFlushMultipleTimesBinary(MilvusClient client, String collectionName) { for (int i = 0; i < 10; i++) { - InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(defaultBinaryEntities).build(); + InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(Constants.defaultBinaryEntities).build(); client.insert(insertParam); Response res = client.flush(collectionName); assert(res.ok()); diff --git a/tests/milvus-java-test/src/main/java/com/TestGetEntityByID.java b/tests/milvus-java-test/src/main/java/com/TestGetEntityByID.java index a039a6f7..6956ed17 100644 --- a/tests/milvus-java-test/src/main/java/com/TestGetEntityByID.java +++ b/tests/milvus-java-test/src/main/java/com/TestGetEntityByID.java @@ -1,97 +1,89 @@ -//package com; -// -//import io.milvus.client.*; -//import org.testng.annotations.Test; -// -//import java.nio.ByteBuffer; -//import java.util.ArrayList; -//import java.util.Collections; -//import java.util.List; -//import java.util.Map; -// -//public class TestGetEntityByID { -// int dimension = 128; -// int nb = 8000; -// public List get_ids = Utils.toListIds(1111); -//// List> vectors = Utils.genVectors(nb, dimension, true); -//// List vectorsBinary = Utils.genBinaryVectors(nb, dimension); -// List> defaultEntities = Utils.genDefaultEntities(dimension,nb,false); -// List> defaultBinaryEntities = Utils.genDefaultEntities(dimension,nb,true); -// -// @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) -// public void test_get_vector_by_id_valid(MilvusClient client, String collectionName) { -// int get_length = 100; -// InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(defaultEntities).build(); -// InsertResponse resInsert = client.insert(insertParam); -// List ids = resInsert.getEntityIds(); -// client.flush(collectionName); -// GetEntityByIDResponse res = client.getEntityByID(collectionName, ids.subList(0, get_length)); -// assert (res.getResponse().ok()); +package com; + +import io.milvus.client.*; +import org.testng.annotations.Test; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +public class TestGetEntityByID { + public List get_ids = Utils.toListIds(1111); + + @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) + public void testGetEntitiesByIdValid(MilvusClient client, String collectionName) { + int get_length = 100; + InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(Constants.defaultEntities).build(); + InsertResponse resInsert = client.insert(insertParam); + List ids = resInsert.getEntityIds(); + client.flush(collectionName); + GetEntityByIDResponse res = client.getEntityByID(collectionName, ids.subList(0, get_length)); + assert (res.getResponse().ok()); // assert (res.getValidIds(), ids.subList(0, get_length)); -// for (int i = 0; i < get_length; i++) { -// List> fieldsMap = res.getFieldsMap(); -// assert (fieldsMap.get(i).get("float_vector").equals(defaultEntities.get(defaultEntities.size()-1).get("values").get("float_vector"))); -// } -// } -// -// @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) -// public void test_get_vector_by_id_after_delete(MilvusClient client, String collectionName) { -// InsertParam insertParam = new InsertParam.Builder(collectionName).withFloatVectors(vectors).build(); -// InsertResponse resInsert = client.insert(insertParam); -// List ids = resInsert.getVectorIds(); -// Response res_delete = client.deleteEntityByID(collectionName, Collections.singletonList(ids.get(0))); -// assert(res_delete.ok()); -// client.flush(collectionName); -// GetEntityByIDResponse res = client.getEntityByID(collectionName, ids.subList(0, 1)); -// assert (res.getResponse().ok()); -// assert (res.getFloatVectors().get(0).size() == 0); -// } -// -// @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) -// public void test_get_vector_by_id_collection_name_not_existed(MilvusClient client, String collectionName) { -// String newCollection = "not_existed"; -// GetEntityByIDResponse res = client.getEntityByID(newCollection, get_ids); -// assert(!res.getResponse().ok()); -// } -// -// @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) -// public void test_get_vector_id_not_existed(MilvusClient client, String collectionName) { -// InsertParam insertParam = new InsertParam.Builder(collectionName).withFloatVectors(vectors).build(); -// client.insert(insertParam); -// client.flush(collectionName); -// GetEntityByIDResponse res = client.getEntityByID(collectionName, get_ids); -// assert (res.getFloatVectors().get(0).size() == 0); -// } -// -// // Binary tests -// @Test(dataProvider = "BinaryCollection", dataProviderClass = MainClass.class) -// public void test_get_vector_by_id_valid_binary(MilvusClient client, String collectionName) { -// InsertParam insertParam = new InsertParam.Builder(collectionName).withBinaryVectors(vectorsBinary).build(); -// InsertResponse resInsert = client.insert(insertParam); -// List ids = resInsert.getVectorIds(); -// client.flush(collectionName); -// GetEntityByIDResponse res = client.getEntityByID(collectionName, ids.subList(0, 1)); -// assert res.getBinaryVectors().get(0).equals(vectorsBinary.get(0).rewind()); -// } -// -// @Test(dataProvider = "BinaryCollection", dataProviderClass = MainClass.class) -// public void test_get_vector_by_id_after_delete_binary(MilvusClient client, String collectionName) { -// InsertParam insertParam = new InsertParam.Builder(collectionName).withBinaryVectors(vectorsBinary).build(); -// InsertResponse resInsert = client.insert(insertParam); -// List ids = resInsert.getVectorIds(); -// Response res_delete = client.deleteEntityByID(collectionName, Collections.singletonList(ids.get(0))); -// assert(res_delete.ok()); -// client.flush(collectionName); -// GetEntityByIDResponse res = client.getEntityByID(collectionName, ids.subList(0, 1)); -// assert (res.getFloatVectors().get(0).size() == 0); -// } -// -// @Test(dataProvider = "BinaryCollection", dataProviderClass = MainClass.class) -// public void test_get_vector_id_not_existed_binary(MilvusClient client, String collectionName) { -// InsertParam insertParam = new InsertParam.Builder(collectionName).withBinaryVectors(vectorsBinary).build(); -// client.insert(insertParam); -// client.flush(collectionName); -// GetEntityByIDResponse res = client.getEntityByID(collectionName, get_ids); -// assert (res.getFloatVectors().get(0).size() == 0); -// } -//} \ No newline at end of file + for (int i = 0; i < get_length; i++) { + List> fieldsMap = res.getFieldsMap(); + assert (fieldsMap.get(i).get("float_vector").equals(Constants.vectors.get(i))); + } + } + + @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) + public void testGetEntityByIdAfterDelete(MilvusClient client, String collectionName) { + InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(Constants.defaultEntities).build(); + InsertResponse resInsert = client.insert(insertParam); + List ids = resInsert.getEntityIds(); + Response res_delete = client.deleteEntityByID(collectionName, Collections.singletonList(ids.get(0))); + assert(res_delete.ok()); + client.flush(collectionName); + GetEntityByIDResponse res = client.getEntityByID(collectionName, ids.subList(0, 1)); + assert (res.getResponse().ok()); + assert (res.getFieldsMap().size() == 0); + } + + @Test(dataProvider = "ConnectInstance", dataProviderClass = MainClass.class) + public void testGetEntityByIdCollectionNameNotExisted(MilvusClient client, String collectionName) { + String newCollection = "not_existed"; + GetEntityByIDResponse res = client.getEntityByID(newCollection, get_ids); + assert(!res.getResponse().ok()); + } + + @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) + public void testGetVectorIdNotExisted(MilvusClient client, String collectionName) { + InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(Constants.defaultEntities).build(); + client.insert(insertParam); + client.flush(collectionName); + GetEntityByIDResponse res = client.getEntityByID(collectionName, get_ids); + assert (res.getFieldsMap().size() == 0); + } + + // Binary tests + @Test(dataProvider = "BinaryCollection", dataProviderClass = MainClass.class) + public void testGetEntityByIdValidBinary(MilvusClient client, String collectionName) { + InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(Constants.defaultBinaryEntities).build(); + InsertResponse resInsert = client.insert(insertParam); + List ids = resInsert.getEntityIds(); + client.flush(collectionName); + GetEntityByIDResponse res = client.getEntityByID(collectionName, ids.subList(0, 1)); + assert res.getFieldsMap().get(0).get(Constants.binaryFieldName).equals(Constants.vectorsBinary.get(0).rewind()); + } + + @Test(dataProvider = "BinaryCollection", dataProviderClass = MainClass.class) + public void testGetEntityByIdAfterDeleteBinary(MilvusClient client, String collectionName) { + InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(Constants.defaultBinaryEntities).build(); + InsertResponse resInsert = client.insert(insertParam); + List ids = resInsert.getEntityIds(); + Response res_delete = client.deleteEntityByID(collectionName, Collections.singletonList(ids.get(0))); + assert(res_delete.ok()); + client.flush(collectionName); + GetEntityByIDResponse res = client.getEntityByID(collectionName, ids.subList(0, 1)); + assert (res.getFieldsMap().size() == 0); + } + + @Test(dataProvider = "BinaryCollection", dataProviderClass = MainClass.class) + public void testGetEntityIdNotExistedBinary(MilvusClient client, String collectionName) { + InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(Constants.defaultBinaryEntities).build(); + client.insert(insertParam); + client.flush(collectionName); + GetEntityByIDResponse res = client.getEntityByID(collectionName, get_ids); + assert (res.getFieldsMap().size() == 0); + } +} \ No newline at end of file -- GitLab