diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-05-04 13:15:06 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-05-04 13:15:06 +0200 |
commit | 46df6aaf5ef4cb41398a9bf3d914e2a712d5d333 (patch) | |
tree | b2ab6defd20ffc25413201847a183e8a88d5ee50 /container-search | |
parent | d27ef59cf839f06d4954f873d1c4957411cbbc84 (diff) |
Cleanup test
Diffstat (limited to 'container-search')
-rw-r--r-- | container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java | 8 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/prelude/fastsearch/SlimeSummaryTestCase.java | 174 |
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(); |