未验证 提交 03c0415e 编写于 作者: T ThreadDao 提交者: GitHub

[skip ci] fix generate default entities (#3382)

* java main class
Signed-off-by: Nzongyufen <zongyufen@foxmail.com>

* [skip ci] fix java sdk test
Signed-off-by: Nzongyufen <zongyufen@foxmail.com>

* [skip ci] fix java sdk test
Signed-off-by: Nzongyufen <zongyufen@foxmail.com>

* [skip ci] fix generate default entities
Signed-off-by: Nzongyufen <zongyufen@foxmail.com>
上级 7e9cffca
......@@ -4,6 +4,7 @@ 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;
......@@ -11,10 +12,10 @@ public class TestCollectionCount {
int segmentRowCount = 5000;
int dimension = 128;
int nb = 10000;
// List<List<Float>> vectors = Utils.genVectors(nb, dimension, true);
// List<ByteBuffer> vectorsBinary = Utils.genBinaryVectors(nb, dimension);
List<Map<String,Object>> defaultEntities = Utils.genDefaultEntities(dimension,nb,false);
List<Map<String,Object>> defaultBinaryEntities = Utils.genDefaultEntities(dimension,nb,true);
List<List<Float>> vectors = Utils.genVectors(nb, dimension, true);
List<ByteBuffer> vectorsBinary = Utils.genBinaryVectors(nb, dimension);
List<Map<String,Object>> defaultEntities = Utils.genDefaultEntities(dimension,nb,vectors);
List<Map<String,Object>> defaultBinaryEntities = Utils.genDefaultBinaryEntities(dimension,nb,vectorsBinary);
@Test(dataProvider = "Collection", dataProviderClass = MainClass.class)
public void testCollectionCountNoVectors(MilvusClient client, String collectionName) {
......
......@@ -20,10 +20,10 @@ public class TestCollectionInfo {
String defaultIndexType = "FLAT";
String metricType = "L2";
String indexParam = Utils.setIndexParam(indexType,metricType,nList);
// List<List<Float>> vectors = Utils.genVectors(nb, dimension, true);
// List<ByteBuffer> vectorsBinary = Utils.genBinaryVectors(nb, dimension);
List<Map<String,Object>> defaultEntities = Utils.genDefaultEntities(dimension,nb,false);
List<Map<String,Object>> defaultBinaryEntities = Utils.genDefaultEntities(dimension,nb,true);
List<List<Float>> vectors = Utils.genVectors(nb, dimension, true);
List<ByteBuffer> vectorsBinary = Utils.genBinaryVectors(nb, dimension);
List<Map<String,Object>> defaultEntities = Utils.genDefaultEntities(dimension,nb,vectors);
List<Map<String,Object>> defaultBinaryEntities = Utils.genDefaultBinaryEntities(dimension,nb,vectorsBinary);
@Test(dataProvider = "Collection", dataProviderClass = MainClass.class)
public void testGetEntityIdsAfterDeleteEntities(MilvusClient client, String collectionName) {
......
......@@ -27,9 +27,10 @@
// 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<Map<String,Object>> fields = res.getFieldsMap();
// assert (res.getFieldsMap().get(i).equals(vectors.get(i)));
// List<Map<String,Object>> fieldsMap = res.getFieldsMap();
// assert (fieldsMap.get(i).get("float_vector").equals(defaultEntities.get(defaultEntities.size()-1).get("values").get("float_vector")));
// }
// }
//
......
......@@ -9,16 +9,15 @@ import java.nio.ByteBuffer;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.LongStream;
import java.util.stream.Stream;
public class TestInsertEntities {
int dimension = 128;
String tag = "tag";
int nb = 8000;
// List<List<Float>> vectors = Utils.genVectors(nb, dimension, true);
// List<ByteBuffer> vectorsBinary = Utils.genBinaryVectors(nb, dimension);
List<Map<String,Object>> defaultEntities = Utils.genDefaultEntities(dimension,nb,false);
List<Map<String,Object>> defaultBinaryEntities = Utils.genDefaultEntities(dimension,nb,true);
List<List<Float>> vectors = Utils.genVectors(nb, dimension, true);
List<ByteBuffer> vectorsBinary = Utils.genBinaryVectors(nb, dimension);
List<Map<String,Object>> defaultEntities = Utils.genDefaultEntities(dimension,nb,vectors);
List<Map<String,Object>> defaultBinaryEntities = Utils.genDefaultBinaryEntities(dimension,nb,vectorsBinary);
@Test(dataProvider = "Collection", dataProviderClass = MainClass.class)
public void testInsertEntitiesCollectionNotExisted(MilvusClient client, String collectionName) throws InterruptedException {
......@@ -72,19 +71,19 @@ public class TestInsertEntities {
assert(!res.getResponse().ok());
}
@Test(dataProvider = "Collection", dataProviderClass = MainClass.class)
public void testInsertEntityWithInvalidDimension(MilvusClient client, String collectionName) {
// vectors.get(0).add((float) 0);
List<Map<String,Object>> entities = Utils.genDefaultEntities(dimension+1,nb,false);
InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(entities).build();
InsertResponse res = client.insert(insertParam);
assert(!res.getResponse().ok());
}
// @Test(dataProvider = "Collection", dataProviderClass = MainClass.class)
// public void testInsertEntityWithInvalidDimension(MilvusClient client, String collectionName) {
//// vectors.get(0).add((float) 0);
// List<Map<String,Object>> entities = Utils.genDefaultEntities(dimension+1,nb,vectors);
// InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(entities).build();
// InsertResponse res = client.insert(insertParam);
// assert(!res.getResponse().ok());
// }
@Test(dataProvider = "Collection", dataProviderClass = MainClass.class)
public void testInsertEntityWithInvalidVectors(MilvusClient client, String collectionName) {
// vectors.set(0, new ArrayList<>());
List<Map<String,Object>> invalidEntities = Utils.genDefaultEntities(dimension,nb,false);
List<Map<String,Object>> invalidEntities = Utils.genDefaultEntities(dimension,nb,new ArrayList<>());
invalidEntities.forEach(entity ->{
if("float_vector".equals(entity.get("field"))){
entity.put("values",new ArrayList<>());
......@@ -171,7 +170,7 @@ public class TestInsertEntities {
@Test(dataProvider = "BinaryCollection", dataProviderClass = MainClass.class)
public void testInsertBinaryEntityWithInvalidDimension(MilvusClient client, String collectionName) {
List<ByteBuffer> vectorsBinary = Utils.genBinaryVectors(nb, dimension-1);
List<Map<String,Object>> binaryEntities = Utils.genDefaultEntities(dimension-1,nb,true);
List<Map<String,Object>> binaryEntities = Utils.genDefaultBinaryEntities(dimension-1,nb,vectorsBinary);
InsertParam insertParam = new InsertParam.Builder(collectionName).withFields(binaryEntities).build();
InsertResponse res = client.insert(insertParam);
assert(!res.getResponse().ok());
......
......@@ -79,17 +79,17 @@ public class Utils {
return defaultFieldList;
}
public static List<Map<String,Object>> genDefaultEntities(int dimension, int vectorCount, boolean isBinary){
List<Map<String,Object>> fields = genDefaultFields(dimension, isBinary);
public static List<Map<String,Object>> genDefaultEntities(int dimension, int vectorCount, List<List<Float>> vectors){
List<Map<String,Object>> fieldsMap = genDefaultFields(dimension, false);
List<Long> intValues = new ArrayList<>(vectorCount);
List<Float> floatValues = new ArrayList<>(vectorCount);
List<List<Float>> vectors = genVectors(vectorCount,dimension,false);
List<ByteBuffer> binaryVectors = genBinaryVectors(vectorCount,dimension);
// List<List<Float>> vectors = genVectors(vectorCount,dimension,false);
// List<ByteBuffer> binaryVectors = genBinaryVectors(vectorCount,dimension);
for (int i = 0; i < vectorCount; ++i) {
intValues.add((long) i);
floatValues.add((float) i);
}
for(Map<String,Object> field: fields){
for(Map<String,Object> field: fieldsMap){
String fieldType = field.get("field").toString();
switch (fieldType){
case "int64":
......@@ -101,11 +101,36 @@ public class Utils {
case "float_vector":
field.put("values",vectors);
break;
}
}
return fieldsMap;
}
public static List<Map<String,Object>> genDefaultBinaryEntities(int dimension, int vectorCount, List<ByteBuffer> vectorsBinary){
List<Map<String,Object>> binaryFieldsMap = genDefaultFields(dimension, true);
List<Long> intValues = new ArrayList<>(vectorCount);
List<Float> floatValues = new ArrayList<>(vectorCount);
// List<List<Float>> vectors = genVectors(vectorCount,dimension,false);
// List<ByteBuffer> binaryVectors = genBinaryVectors(vectorCount,dimension);
for (int i = 0; i < vectorCount; ++i) {
intValues.add((long) i);
floatValues.add((float) i);
}
for(Map<String,Object> field: binaryFieldsMap){
String fieldType = field.get("field").toString();
switch (fieldType){
case "int64":
field.put("values",intValues);
break;
case "float":
field.put("values",floatValues);
break;
case "binary_vector":
field.put("values",binaryVectors);
field.put("values",vectorsBinary);
break;
}
}
return fields;
return binaryFieldsMap;
}
public static String setIndexParam(String indexType, String metricType, int nlist) {
......@@ -149,12 +174,13 @@ public class Utils {
Integer value = jsonObject.getInteger(key);
return value;
}
// public static List<Float> getVector(List<Map<String,Object>> entities, int i){
// List<Float> vector = new ArrayList<>();
// entities.forEach(entity -> {
// if("float_vector".equals(entity.get("field"))){
// vector.add(entity.get("values").get(i));
// }
// });
// }
public static List<Float> getVector(List<Map<String,Object>> entities, int i){
List<Float> vector = new ArrayList<>();
entities.forEach(entity -> {
if("float_vector".equals(entity.get("field")) && Objects.nonNull(entity.get("values"))){
vector.add(((List<Float>)entity.get("values")).get(i));
}
});
return vector;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册