use of com.yahoo.document.datatypes.IntegerFieldValue in project vespa by vespa-engine.
the class DocumentTestCase method testTypeChecking.
@Test
public void testTypeChecking() {
DocumentType type = new DocumentType("test");
type.addField(new Field("double", DataType.DOUBLE));
type.addField(new Field("float", DataType.FLOAT));
type.addField(new Field("int", DataType.INT));
type.addField(new Field("long", DataType.LONG));
type.addField(new Field("string", DataType.STRING));
Document doc = new Document(type, "doc:scheme:");
FieldValue stringVal = new StringFieldValue("69");
FieldValue doubleVal = new DoubleFieldValue(6.9);
FieldValue floatVal = new FloatFieldValue(6.9f);
FieldValue intVal = new IntegerFieldValue(69);
FieldValue longVal = new LongFieldValue(69L);
doc.setFieldValue("string", stringVal);
doc.setFieldValue("string", doubleVal);
doc.setFieldValue("string", floatVal);
doc.setFieldValue("string", intVal);
doc.setFieldValue("string", longVal);
doc.setFieldValue("double", stringVal);
doc.setFieldValue("double", doubleVal);
doc.setFieldValue("double", floatVal);
doc.setFieldValue("double", intVal);
doc.setFieldValue("double", longVal);
doc.setFieldValue("float", stringVal);
doc.setFieldValue("float", doubleVal);
doc.setFieldValue("float", floatVal);
doc.setFieldValue("float", intVal);
doc.setFieldValue("float", longVal);
doc.setFieldValue("int", stringVal);
doc.setFieldValue("int", doubleVal);
doc.setFieldValue("int", floatVal);
doc.setFieldValue("int", intVal);
doc.setFieldValue("int", longVal);
doc.setFieldValue("long", stringVal);
doc.setFieldValue("long", doubleVal);
doc.setFieldValue("long", floatVal);
doc.setFieldValue("long", intVal);
doc.setFieldValue("long", longVal);
}
use of com.yahoo.document.datatypes.IntegerFieldValue in project vespa by vespa-engine.
the class DocumentTestCase method testSetGet.
@Test
public void testSetGet() {
Document doc = new Document(docMan.getDocumentType("testdoc"), new DocumentId("doc:testdoc:test"));
Object val = doc.getFieldValue(minField.getName());
assertNull(val);
doc.setFieldValue(minField.getName(), 500);
val = doc.getFieldValue(minField.getName());
assertEquals(new IntegerFieldValue(500), val);
val = doc.getFieldValue(minField.getName());
assertEquals(new IntegerFieldValue(500), val);
doc.removeFieldValue(minField);
assertNull(doc.getFieldValue(minField.getName()));
assertNull(doc.getFieldValue("doesntexist"));
}
use of com.yahoo.document.datatypes.IntegerFieldValue in project vespa by vespa-engine.
the class DocumentTestCase method testGetRecursiveValue.
@Test
public void testGetRecursiveValue() {
Document doc = new Document(testDocType, new DocumentId("doc:ns:testdoc"));
doc.setFieldValue("primitive1", 1);
Struct l1s1 = new Struct(doc.getField("l1s1").getDataType());
l1s1.setFieldValue("primitive1", 2);
Struct l2s1 = new Struct(doc.getField("struct2").getDataType());
l2s1.setFieldValue("primitive1", 3);
l2s1.setFieldValue("primitive2", 4);
Array<IntegerFieldValue> iarr1 = new Array<>(l2s1.getField("iarray").getDataType());
iarr1.add(new IntegerFieldValue(11));
iarr1.add(new IntegerFieldValue(12));
iarr1.add(new IntegerFieldValue(13));
l2s1.setFieldValue("iarray", iarr1);
ArrayDataType dt = (ArrayDataType) l2s1.getField("sarray").getDataType();
Array<Struct> sarr1 = new Array<>(dt);
{
Struct l3s1 = new Struct(dt.getNestedType());
l3s1.setFieldValue("primitive1", 1);
l3s1.setFieldValue("primitive2", 2);
sarr1.add(l3s1);
}
{
Struct l3s1 = new Struct(dt.getNestedType());
l3s1.setFieldValue("primitive1", 1);
l3s1.setFieldValue("primitive2", 2);
sarr1.add(l3s1);
}
l2s1.setFieldValue("sarray", sarr1);
MapFieldValue<StringFieldValue, StringFieldValue> smap1 = new MapFieldValue<>((MapDataType) l2s1.getField("smap").getDataType());
smap1.put(new StringFieldValue("leonardo"), new StringFieldValue("dicaprio"));
smap1.put(new StringFieldValue("ellen"), new StringFieldValue("page"));
smap1.put(new StringFieldValue("joseph"), new StringFieldValue("gordon-levitt"));
l2s1.setFieldValue("smap", smap1);
l1s1.setFieldValue("ss", l2s1.clone());
MapFieldValue<StringFieldValue, Struct> structmap1 = new MapFieldValue<>((MapDataType) l1s1.getField("structmap").getDataType());
structmap1.put(new StringFieldValue("test"), l2s1.clone());
l1s1.setFieldValue("structmap", structmap1);
WeightedSet<StringFieldValue> wset1 = new WeightedSet<>(l1s1.getField("wset").getDataType());
wset1.add(new StringFieldValue("foo"));
wset1.add(new StringFieldValue("bar"));
wset1.add(new StringFieldValue("zoo"));
l1s1.setFieldValue("wset", wset1);
Struct l2s2 = new Struct(doc.getField("struct2").getDataType());
l2s2.setFieldValue("primitive1", 5);
l2s2.setFieldValue("primitive2", 6);
WeightedSet<Struct> wset2 = new WeightedSet<>(l1s1.getField("structwset").getDataType());
wset2.add(l2s1.clone());
wset2.add(l2s2.clone());
l1s1.setFieldValue("structwset", wset2);
doc.setFieldValue("l1s1", l1s1.clone());
{
FieldValue fv = doc.getRecursiveValue("l1s1");
assertEquals(l1s1, fv);
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.primitive1");
assertEquals(new IntegerFieldValue(2), fv);
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.ss");
assertEquals(l2s1, fv);
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.ss.iarray");
assertEquals(iarr1, fv);
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.ss.iarray[2]");
assertEquals(new IntegerFieldValue(13), fv);
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.ss.iarray[3]");
assertNull(fv);
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.ss.sarray[0].primitive1");
assertEquals(new IntegerFieldValue(1), fv);
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.ss.smap{joseph}");
assertEquals(new StringFieldValue("gordon-levitt"), fv);
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.ss.smap.key");
assertEquals(3, ((Array) fv).size());
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.structmap{test}.primitive1");
assertEquals(new IntegerFieldValue(3), fv);
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.structmap.value.primitive1");
assertEquals(new IntegerFieldValue(3), fv);
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.wset{foo}");
assertEquals(new IntegerFieldValue(1), fv);
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.wset.key");
assertEquals(3, ((Array) fv).size());
}
{
FieldValue fv = doc.getRecursiveValue("l1s1.structwset.key.primitive1");
assertEquals(DataType.INT, (((ArrayDataType) fv.getDataType()).getNestedType()));
assertEquals(2, ((Array) fv).size());
}
}
use of com.yahoo.document.datatypes.IntegerFieldValue in project vespa by vespa-engine.
the class DocumentTestCase method testGenerateSerializedFile.
@Test
public void testGenerateSerializedFile() throws IOException {
docMan = setUpCppDocType();
Document doc = new Document(docMan.getDocumentType("serializetest"), new DocumentId("doc:serializetest:http://test.doc.id/"));
Document docindoc = new Document(docMan.getDocumentType("docindoc"), new DocumentId("doc:serializetest:http://doc.in.doc/"));
docindoc.setFieldValue("stringindocfield", "Elvis is dead");
doc.setFieldValue("docfield", docindoc);
Array<FloatFieldValue> l = new Array<>(doc.getField("arrayoffloatfield").getDataType());
l.add(new FloatFieldValue((float) 1.0));
l.add(new FloatFieldValue((float) 2.0));
doc.setFieldValue("arrayoffloatfield", l);
WeightedSet<StringFieldValue> wset = new WeightedSet<>(doc.getDataType().getField("wsfield").getDataType());
wset.put(new StringFieldValue("Weighted 0"), 50);
wset.put(new StringFieldValue("Weighted 1"), 199);
doc.setFieldValue("wsfield", wset);
MapFieldValue<StringFieldValue, StringFieldValue> map = new MapFieldValue<>((MapDataType) doc.getDataType().getField("mapfield").getDataType());
map.put(new StringFieldValue("foo1"), new StringFieldValue("bar1"));
map.put(new StringFieldValue("foo2"), new StringFieldValue("bar2"));
doc.setFieldValue("mapfield", map);
doc.setFieldValue("bytefield", new ByteFieldValue((byte) 254));
doc.setFieldValue("rawfield", new Raw(ByteBuffer.wrap("RAW DATA".getBytes())));
doc.setFieldValue("intfield", new IntegerFieldValue(5));
doc.setFieldValue("floatfield", new FloatFieldValue(-9.23f));
doc.setFieldValue("stringfield", new StringFieldValue("This is a string."));
doc.setFieldValue("longfield", new LongFieldValue(398420092938472983L));
doc.setFieldValue("doublefield", new DoubleFieldValue(98374532.398820d));
doc.setFieldValue("urifield", new StringFieldValue("http://this.is.a.test/"));
int size = doc.getSerializedSize();
GrowableByteBuffer buf = new GrowableByteBuffer(size, 2.0f);
doc.serialize(buf);
assertEquals(size, buf.position());
buf.position(0);
FileOutputStream fos = new FileOutputStream("src/tests/data/serializejava.dat");
fos.write(buf.array(), 0, size);
fos.close();
CompressionConfig noncomp = new CompressionConfig();
CompressionConfig lz4comp = new CompressionConfig(CompressionType.LZ4);
doc.getDataType().getHeaderType().setCompressionConfig(lz4comp);
doc.getDataType().getBodyType().setCompressionConfig(lz4comp);
buf = new GrowableByteBuffer(size, 2.0f);
doc.serialize(buf);
doc.getDataType().getHeaderType().setCompressionConfig(noncomp);
doc.getDataType().getBodyType().setCompressionConfig(noncomp);
fos = new FileOutputStream("src/tests/data/serializejava-compressed.dat");
fos.write(buf.array(), 0, buf.position());
fos.close();
}
use of com.yahoo.document.datatypes.IntegerFieldValue in project vespa by vespa-engine.
the class DocumentTestCase method testUnknownFieldsDeserialization.
@Test
public void testUnknownFieldsDeserialization() {
DocumentTypeManager docTypeManasjer = new DocumentTypeManager();
GrowableByteBuffer buf = new GrowableByteBuffer();
{
DocumentType typeWithDinner = new DocumentType("elvis");
typeWithDinner.addField("breakfast", DataType.STRING);
typeWithDinner.addField("lunch", DataType.INT);
typeWithDinner.addField("dinner", DataType.DOUBLE);
docTypeManasjer.registerDocumentType(typeWithDinner);
Document docWithDinner = new Document(typeWithDinner, "doc:elvis:has:left:the:building");
docWithDinner.setFieldValue("breakfast", "peanut butter");
docWithDinner.setFieldValue("lunch", 14);
docWithDinner.setFieldValue("dinner", 5.43d);
docWithDinner.serialize(buf);
buf.flip();
docTypeManasjer.clear();
}
{
DocumentType typeWithoutDinner = new DocumentType("elvis");
typeWithoutDinner.addField("breakfast", DataType.STRING);
typeWithoutDinner.addField("lunch", DataType.INT);
// no dinner
docTypeManasjer.registerDocumentType(typeWithoutDinner);
Document docWithoutDinner = docTypeManasjer.createDocument(buf);
assertEquals(new StringFieldValue("peanut butter"), docWithoutDinner.getFieldValue("breakfast"));
assertEquals(new IntegerFieldValue(14), docWithoutDinner.getFieldValue("lunch"));
assertNull(docWithoutDinner.getFieldValue("dinner"));
}
}
Aggregations