mirror of https://github.com/milvus-io/milvus.git
[skip ci] fix generate default entities (#3382)
* java main class Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] fix java sdk test Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] fix java sdk test Signed-off-by: zongyufen <zongyufen@foxmail.com> * [skip ci] fix generate default entities Signed-off-by: zongyufen <zongyufen@foxmail.com>pull/3384/head^2
parent
7e9cffca1d
commit
03c0415ec6
|
@ -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;
|
||||
case "binary_vector":
|
||||
field.put("values",binaryVectors);
|
||||
}
|
||||
}
|
||||
return fields;
|
||||
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",vectorsBinary);
|
||||
break;
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue