summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-05-04 13:15:06 +0200
committerJon Bratseth <bratseth@oath.com>2018-05-04 13:15:06 +0200
commit46df6aaf5ef4cb41398a9bf3d914e2a712d5d333 (patch)
treeb2ab6defd20ffc25413201847a183e8a88d5ee50 /container-search
parentd27ef59cf839f06d4954f873d1c4957411cbbc84 (diff)
Cleanup test
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java8
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/SlimeSummaryTestCase.java174
2 files changed, 91 insertions, 91 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java
index b167ad2124e..f3232bd2d2a 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java
@@ -689,12 +689,4 @@ public class FastHit extends Hit {
}
- // TODO: Things we need to check that we test:
- // - removing, then adding a field
- // - removing from field and field name iterators
- // - removing fields, both summary and map, then iterating
- // - removing all fields in some summary, then iterating
- // - adding a field from the iterator
- // - iterating with fields set and multiple summaries, where some summaries have overlapping fields (TODO: Or ensure no overlapping fields?)
-
}
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/SlimeSummaryTestCase.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/SlimeSummaryTestCase.java
index 9b2de75e272..10516b1adf2 100644
--- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/SlimeSummaryTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/SlimeSummaryTestCase.java
@@ -1,7 +1,6 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.prelude.fastsearch;
-
import com.yahoo.config.subscription.ConfigGetter;
import com.yahoo.container.search.LegacyEmulationConfig;
import com.yahoo.prelude.hitfield.RawData;
@@ -9,21 +8,22 @@ import com.yahoo.prelude.hitfield.XMLString;
import com.yahoo.prelude.hitfield.JSONString;
import com.yahoo.search.result.NanNumber;
import com.yahoo.search.result.StructuredData;
-import com.yahoo.slime.*;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.charset.StandardCharsets;
+import com.yahoo.slime.BinaryFormat;
+import com.yahoo.slime.Cursor;
+import com.yahoo.slime.Slime;
import com.yahoo.tensor.Tensor;
import com.yahoo.tensor.serialization.TypedBinaryFormat;
import org.junit.Test;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.CoreMatchers.*;
+
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-
public class SlimeSummaryTestCase {
@Test
@@ -34,80 +34,61 @@ public class SlimeSummaryTestCase {
byte[] docsum = makeEmptyDocsum();
FastHit hit = new FastHit();
assertNull(set.lazyDecode("default", docsum, hit));
- assertThat(hit.getField("integer_field"), equalTo(NanNumber.NaN));
- assertThat(hit.getField("short_field"), equalTo(NanNumber.NaN));
- assertThat(hit.getField("byte_field"), equalTo(NanNumber.NaN));
- assertThat(hit.getField("float_field"), equalTo(NanNumber.NaN));
- assertThat(hit.getField("double_field"), equalTo(NanNumber.NaN));
- assertThat(hit.getField("int64_field"), equalTo(NanNumber.NaN));
- assertThat(hit.getField("string_field"), equalTo(""));
- assertThat(hit.getField("data_field"), instanceOf(RawData.class));
- assertThat(hit.getField("data_field").toString(), equalTo(""));
- assertThat(hit.getField("longstring_field"), equalTo((Object)""));
- assertThat(hit.getField("longdata_field"), instanceOf(RawData.class));
- assertThat(hit.getField("longdata_field").toString(), equalTo(""));
- assertThat(hit.getField("xmlstring_field"), instanceOf(XMLString.class));
- assertThat(hit.getField("xmlstring_field").toString(), equalTo(""));
- // assertThat(hit.getField("jsonstring_field"), instanceOf(JSONString.class));
- assertThat(hit.getField("jsonstring_field").toString(), equalTo(""));
+ assertEquals(NanNumber.NaN, hit.getField("integer_field"));
+ assertEquals(NanNumber.NaN, hit.getField("short_field"));
+ assertEquals(NanNumber.NaN, hit.getField("byte_field"));
+ assertEquals(NanNumber.NaN, hit.getField("float_field"));
+ assertEquals(NanNumber.NaN, hit.getField("double_field"));
+ assertEquals(NanNumber.NaN, hit.getField("int64_field"));
+ assertEquals("", hit.getField("string_field"));
+ assertEquals(RawData.class, hit.getField("data_field").getClass());
+ assertEquals("", hit.getField("data_field").toString());
+ assertEquals("", hit.getField("longstring_field"));
+ assertEquals(RawData.class, hit.getField("longdata_field").getClass());
+ assertEquals("", hit.getField("longdata_field").toString());
+ assertEquals(XMLString.class, hit.getField("xmlstring_field").getClass());
+ assertEquals("", hit.getField("xmlstring_field").toString());
+ // assertEquals(hit.getField("jsonstring_field"), instanceOf(JSONString.class));
+ assertEquals("", hit.getField("jsonstring_field").toString());
// Empty tensors are represented by null because we don't have type information here to create the right empty tensor
assertNull(hit.getField("tensor_field1"));
assertNull(hit.getField("tensor_field2"));
}
- private DocsumDefinitionSet createDocsumDefinitionSet(String configID, LegacyEmulationConfig legacyEmulationConfig) {
- DocumentdbInfoConfig config = new ConfigGetter<>(DocumentdbInfoConfig.class).getConfig(configID);
- return new DocsumDefinitionSet(config.documentdb(0), legacyEmulationConfig);
- }
-
@Test
public void testDecodingEmptyWithoutForcedFill() {
String summary_cf = "file:src/test/java/com/yahoo/prelude/fastsearch/summary.cfg";
- DocsumDefinitionSet set = createDocsumDefinitionSet(summary_cf, new LegacyEmulationConfig(new LegacyEmulationConfig.Builder().forceFillEmptyFields(false)));
+ DocsumDefinitionSet set = createDocsumDefinitionSet(summary_cf);
byte[] docsum = makeEmptyDocsum();
FastHit hit = new FastHit();
assertNull(set.lazyDecode("default", docsum, hit));
- assertThat(hit.getField("integer_field"), equalTo(null));
- assertThat(hit.getField("short_field"), equalTo(null));
- assertThat(hit.getField("byte_field"), equalTo(null));
- assertThat(hit.getField("float_field"), equalTo(null));
- assertThat(hit.getField("double_field"), equalTo(null));
- assertThat(hit.getField("int64_field"), equalTo(null));
- assertThat(hit.getField("string_field"), equalTo(null));
- assertThat(hit.getField("data_field"), equalTo(null));
- assertThat(hit.getField("data_field"), equalTo(null));
- assertThat(hit.getField("longstring_field"), equalTo(null));
- assertThat(hit.getField("longdata_field"), equalTo(null));
- assertThat(hit.getField("longdata_field"), equalTo(null));
- assertThat(hit.getField("xmlstring_field"), equalTo(null));
- assertThat(hit.getField("xmlstring_field"), equalTo(null));
- assertThat(hit.getField("jsonstring_field"), equalTo(null));
+ assertNull(hit.getField("integer_field"));
+ assertNull(hit.getField("short_field"));
+ assertNull(hit.getField("byte_field"));
+ assertNull(hit.getField("float_field"));
+ assertNull(hit.getField("double_field"));
+ assertNull(hit.getField("int64_field"));
+ assertNull(hit.getField("string_field"));
+ assertNull(hit.getField("data_field"));
+ assertNull(hit.getField("data_field"));
+ assertNull(hit.getField("longstring_field"));
+ assertNull(hit.getField("longdata_field"));
+ assertNull(hit.getField("longdata_field"));
+ assertNull(hit.getField("xmlstring_field"));
+ assertNull(hit.getField("xmlstring_field"));
+ assertNull(hit.getField("jsonstring_field"));
assertNull(hit.getField("tensor_field1"));
assertNull(hit.getField("tensor_field2"));
}
- private byte[] makeEmptyDocsum() {
- Slime slime = new Slime();
- Cursor docsum = slime.setObject();
- return encode((slime));
- }
- private byte [] encode(Slime slime) {
- byte[] tmp = BinaryFormat.encode(slime);
- ByteBuffer buf = ByteBuffer.allocate(tmp.length + 4);
- buf.order(ByteOrder.LITTLE_ENDIAN);
- buf.putInt(DocsumDefinitionSet.SLIME_MAGIC_ID);
- buf.order(ByteOrder.BIG_ENDIAN);
- buf.put(tmp);
- return buf.array();
- }
-
@Test
public void testTimeout() {
String summary_cf = "file:src/test/java/com/yahoo/prelude/fastsearch/summary.cfg";
DocsumDefinitionSet set = createDocsumDefinitionSet(summary_cf);
byte[] docsum = makeTimeout();
FastHit hit = new FastHit();
- assertEquals("Hit hit index:null/0/000000000000000000000000 (relevance null) [fasthit, globalid: 0 0 0 0 0 0 0 0 0 0 0 0, partId: 0, distributionkey: 0] failed: Timed out....", set.lazyDecode("default", docsum, hit));
+ assertEquals("Hit hit index:null/0/000000000000000000000000 (relevance null) [fasthit, globalid: 0 0 0 0 0 0 0 0 0 0 0 0, partId: 0, distributionkey: 0] failed: Timed out....",
+ set.lazyDecode("default", docsum, hit));
}
@Test
@@ -120,47 +101,74 @@ public class SlimeSummaryTestCase {
byte[] docsum = makeDocsum(tensor1, tensor2);
FastHit hit = new FastHit();
assertNull(set.lazyDecode("default", docsum, hit));
- assertThat(hit.getField("integer_field"), equalTo(4));
- assertThat(hit.getField("short_field"), equalTo((short)2));
- assertThat(hit.getField("byte_field"), equalTo((byte)1));
- assertThat(hit.getField("float_field"), equalTo(4.5f));
- assertThat(hit.getField("double_field"), equalTo(8.75));
- assertThat(hit.getField("int64_field"), equalTo(8L));
- assertThat(hit.getField("string_field"), equalTo("string_value"));
- assertThat(hit.getField("data_field"), instanceOf(RawData.class));
- assertThat(hit.getField("data_field").toString(), equalTo("data_value"));
- assertThat(hit.getField("longstring_field"), equalTo((Object)"longstring_value"));
- assertThat(hit.getField("longdata_field"), instanceOf(RawData.class));
- assertThat(hit.getField("longdata_field").toString(), equalTo("longdata_value"));
- assertThat(hit.getField("xmlstring_field"), instanceOf(XMLString.class));
- assertThat(hit.getField("xmlstring_field").toString(), equalTo("<tag>xmlstring_value</tag>"));
+ assertEquals(4, hit.getField("integer_field"));
+ assertEquals((short)2, hit.getField("short_field"));
+ assertEquals((byte)1, hit.getField("byte_field"));
+ assertEquals(4.5F, hit.getField("float_field"));
+ assertEquals(8.75, hit.getField("double_field"));
+ assertEquals(8L, hit.getField("int64_field"));
+ assertEquals("string_value", hit.getField("string_field"));
+ assertEquals(RawData.class, hit.getField("data_field").getClass());
+ assertEquals("data_value", hit.getField("data_field").toString());
+ assertEquals("longstring_value", hit.getField("longstring_field"));
+ assertEquals(RawData.class, hit.getField("longdata_field").getClass());
+ assertEquals("longdata_value", hit.getField("longdata_field").toString());
+ assertEquals(XMLString.class, hit.getField("xmlstring_field").getClass());
+ assertEquals("<tag>xmlstring_value</tag>", hit.getField("xmlstring_field").toString());
if (hit.getField("jsonstring_field") instanceof JSONString) {
JSONString jstr = (JSONString) hit.getField("jsonstring_field");
- assertThat(jstr.getContent(), equalTo("{\"foo\":1,\"bar\":2}"));
- assertThat(jstr.getParsedJSON(), notNullValue());
+ assertEquals("{\"foo\":1,\"bar\":2}", jstr.getContent());
+ assertNotNull(jstr.getParsedJSON());
- com.yahoo.data.access.Inspectable obj = jstr;
- com.yahoo.data.access.Inspector value = obj.inspect();
- assertThat(value.field("foo").asLong(), equalTo(1L));
- assertThat(value.field("bar").asLong(), equalTo(2L));
+ com.yahoo.data.access.Inspector value = jstr.inspect();
+ assertEquals(1L, value.field("foo").asLong());
+ assertEquals(2L, value.field("bar").asLong());
} else {
StructuredData sdata = (StructuredData) hit.getField("jsonstring_field");
- assertThat(sdata.toJson(), equalTo("{\"foo\":1,\"bar\":2}"));
+ assertEquals("{\"foo\":1,\"bar\":2}", sdata.toJson());
- com.yahoo.data.access.Inspectable obj = sdata;
- com.yahoo.data.access.Inspector value = obj.inspect();
- assertThat(value.field("foo").asLong(), equalTo(1L));
- assertThat(value.field("bar").asLong(), equalTo(2L));
+ com.yahoo.data.access.Inspector value = sdata.inspect();
+ assertEquals(1L, value.field("foo").asLong());
+ assertEquals(2L, value.field("bar").asLong());
}
assertEquals(tensor1, hit.getField("tensor_field1"));
assertEquals(tensor2, hit.getField("tensor_field2"));
}
+ // TODO: Things we need to check that we test:
+ // - removing, then adding a field
+ // - removing from field and field name iterators
+ // - removing fields, both summary and map, then iterating
+ // - removing all fields in some summary, then iterating
+ // - adding a field from the iterator
+ // - iterating with fields set and multiple summaries, where some summaries have overlapping fields (TODO: Or ensure no overlapping fields?)
+
+
+ private byte[] makeEmptyDocsum() {
+ Slime slime = new Slime();
+ slime.setObject();
+ return encode((slime));
+ }
+ private byte[] encode(Slime slime) {
+ byte[] tmp = BinaryFormat.encode(slime);
+ ByteBuffer buf = ByteBuffer.allocate(tmp.length + 4);
+ buf.order(ByteOrder.LITTLE_ENDIAN);
+ buf.putInt(DocsumDefinitionSet.SLIME_MAGIC_ID);
+ buf.order(ByteOrder.BIG_ENDIAN);
+ buf.put(tmp);
+ return buf.array();
+ }
+
private DocsumDefinitionSet createDocsumDefinitionSet(String configID) {
DocumentdbInfoConfig config = new ConfigGetter<>(DocumentdbInfoConfig.class).getConfig(configID);
return new DocsumDefinitionSet(config.documentdb(0));
}
+ private DocsumDefinitionSet createDocsumDefinitionSet(String configID, LegacyEmulationConfig legacyEmulationConfig) {
+ DocumentdbInfoConfig config = new ConfigGetter<>(DocumentdbInfoConfig.class).getConfig(configID);
+ return new DocsumDefinitionSet(config.documentdb(0), legacyEmulationConfig);
+ }
+
private byte[] makeDocsum(Tensor tensor1, Tensor tensor2) {
Slime slime = new Slime();
Cursor docsum = slime.setObject();