diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-08-09 13:34:18 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-08-09 14:38:18 +0000 |
commit | 840aacbbae61a4d0162d2decb534a6fe5fae030a (patch) | |
tree | 5077bdbf21edac80543673cca052b46ec108db18 /document/src/test | |
parent | 247c57f87631a684fa72f410a8c896900c01e303 (diff) |
Remove visitor ordering and order selection.
Diffstat (limited to 'document/src/test')
7 files changed, 81 insertions, 272 deletions
diff --git a/document/src/test/java/com/yahoo/document/BucketIdFactoryTestCase.java b/document/src/test/java/com/yahoo/document/BucketIdFactoryTestCase.java index d10d4242f6f..c2e1dbd611c 100644 --- a/document/src/test/java/com/yahoo/document/BucketIdFactoryTestCase.java +++ b/document/src/test/java/com/yahoo/document/BucketIdFactoryTestCase.java @@ -1,10 +1,8 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.document; -import com.yahoo.document.BucketIdFactory; -import com.yahoo.document.BucketId; -import com.yahoo.document.DocumentId; -import com.yahoo.document.idstring.*; +import com.yahoo.document.idstring.DocIdString; +import com.yahoo.document.idstring.IdIdString; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -44,23 +42,20 @@ public class BucketIdFactoryTestCase { } @Test + @SuppressWarnings("deprecation") public void testBucketGeneration() { + // TODO Rewrite in time for VESPA 8 to use IdIdString BucketIdFactory factory = new BucketIdFactory(32, 26, 6); DocumentId doc1 = new DocumentId(new DocIdString("ns", "spec")); DocumentId doc2 = new DocumentId(new DocIdString("ns2", "spec")); DocumentId doc3 = new DocumentId(new DocIdString("ns", "spec2")); - DocumentId userDoc1 = new DocumentId(new UserDocIdString("ns", 0x12, "spec")); - DocumentId userDoc2 = new DocumentId(new UserDocIdString("ns2", 0x12, "spec2")); - DocumentId userDoc3 = new DocumentId(new UserDocIdString("ns", 0x13, "spec")); - DocumentId groupDoc1 = new DocumentId(new GroupDocIdString("ns", "yahoo.com", "spec")); - DocumentId groupDoc2 = new DocumentId(new GroupDocIdString("ns2", "yahoo.com", "spec2")); - DocumentId groupDoc3 = new DocumentId(new GroupDocIdString("ns", "yahoo", "spec")); - DocumentId orderDoc1 = new DocumentId(new OrderDocIdString("ns", "13", 31, 19, 1268182861, "foo")); - DocumentId orderDoc2 = new DocumentId(new OrderDocIdString("ns", "13", 31, 19, 1205110861, "foo")); - DocumentId orderDoc3 = new DocumentId(new OrderDocIdString("ns", "13", 31, 19, 1205715661, "foo")); - DocumentId orderDoc4 = new DocumentId(new OrderDocIdString("ns", "13", 4, 0, 2, "foo")); - DocumentId orderDoc5 = new DocumentId(new OrderDocIdString("ns", "13", 4, 0, 4, "foo")); - DocumentId orderDoc6 = new DocumentId(new OrderDocIdString("ns", "13", 4, 0, 11, "foo")); + DocumentId userDoc1 = new DocumentId(new IdIdString("ns", "mytype","n=18", "spec")); + DocumentId userDoc2 = new DocumentId(new IdIdString("ns", "mytype","n=18", "spec2")); + DocumentId userDoc3 = new DocumentId(new IdIdString("ns", "mytype","n=19", "spec")); + DocumentId groupDoc1 = new DocumentId(new IdIdString("ns", "mytype", "g=yahoo.com", "spec")); + DocumentId groupDoc2 = new DocumentId(new IdIdString("ns2", "mytype", "g=yahoo.com", "spec2")); + DocumentId groupDoc3 = new DocumentId(new IdIdString("ns", "mytype", "g=yahoo", "spec")); + BucketId docBucket1 = factory.getBucketId(doc1); BucketId docBucket2 = factory.getBucketId(doc2); @@ -71,32 +66,18 @@ public class BucketIdFactoryTestCase { BucketId groupDocBucket1 = factory.getBucketId(groupDoc1); BucketId groupDocBucket2 = factory.getBucketId(groupDoc2); BucketId groupDocBucket3 = factory.getBucketId(groupDoc3); - BucketId orderDocBucket1 = factory.getBucketId(orderDoc1); - BucketId orderDocBucket2 = factory.getBucketId(orderDoc2); - BucketId orderDocBucket3 = factory.getBucketId(orderDoc3); - BucketId orderDocBucket4 = factory.getBucketId(orderDoc4); - BucketId orderDocBucket5 = factory.getBucketId(orderDoc5); - BucketId orderDocBucket6 = factory.getBucketId(orderDoc6); - - assertEquals(new Hex(0xe99703f200000012l), new Hex(userDocBucket1.getRawId())); - assertEquals(new Hex(0xebfa518a00000012l), new Hex(userDocBucket2.getRawId())); - assertEquals(new Hex(0xeac1850800000013l), new Hex(userDocBucket3.getRawId())); - - assertEquals(new Hex(0xe90ce4b09a1acd50l), new Hex(groupDocBucket1.getRawId())); - assertEquals(new Hex(0xe9cedaa49a1acd50l), new Hex(groupDocBucket2.getRawId())); - assertEquals(new Hex(0xe8cdb18bafe81f24l), new Hex(groupDocBucket3.getRawId())); - - assertEquals(new Hex(0xe980c9abd5fd8d11l), new Hex(docBucket1.getRawId())); - assertEquals(new Hex(0xeafe870c5f9c37b9l), new Hex(docBucket2.getRawId())); - assertEquals(new Hex(0xeaebe9473ecbcd69l), new Hex(docBucket3.getRawId())); - - assertEquals(new Hex(0xeae764e90000000dl), new Hex(orderDocBucket1.getRawId())); - assertEquals(new Hex(0xeacb85f10000000dl), new Hex(orderDocBucket2.getRawId())); - assertEquals(new Hex(0xea68ddf10000000dl), new Hex(orderDocBucket3.getRawId())); - - assertEquals(new Hex(0xe87526540000000dl), new Hex(orderDocBucket4.getRawId())); - assertEquals(new Hex(0xea59f8f20000000dl), new Hex(orderDocBucket5.getRawId())); - assertEquals(new Hex(0xe9eb703d0000000dl), new Hex(orderDocBucket6.getRawId())); + + assertEquals(new Hex(0xeb3089a300000012L), new Hex(userDocBucket1.getRawId())); + assertEquals(new Hex(0xea780a8700000012L), new Hex(userDocBucket2.getRawId())); + assertEquals(new Hex(0xe80d16fc00000013L), new Hex(userDocBucket3.getRawId())); + + assertEquals(new Hex(0xeb82f2be9a1acd50L), new Hex(groupDocBucket1.getRawId())); + assertEquals(new Hex(0xebff6e379a1acd50L), new Hex(groupDocBucket2.getRawId())); + assertEquals(new Hex(0xe91b9600afe81f24L), new Hex(groupDocBucket3.getRawId())); + + assertEquals(new Hex(0xe980c9abd5fd8d11L), new Hex(docBucket1.getRawId())); + assertEquals(new Hex(0xeafe870c5f9c37b9L), new Hex(docBucket2.getRawId())); + assertEquals(new Hex(0xeaebe9473ecbcd69L), new Hex(docBucket3.getRawId())); } //Actually a BucketId testcase ... @@ -113,7 +94,7 @@ public class BucketIdFactoryTestCase { @Test public void testBidContainsDocId() { - DocumentId docId = new DocumentId("userdoc:recovery:18:99999"); + DocumentId docId = new DocumentId("id:ns:recovery:n=18:99999"); BucketIdFactory factory = new BucketIdFactory(32, 26, 6); BucketId bid = new BucketId(16, 0x12L); assert(bid.contains(docId, factory)); diff --git a/document/src/test/java/com/yahoo/document/DocumentIdTestCase.java b/document/src/test/java/com/yahoo/document/DocumentIdTestCase.java index bd769889363..b8f60b5d9bc 100644 --- a/document/src/test/java/com/yahoo/document/DocumentIdTestCase.java +++ b/document/src/test/java/com/yahoo/document/DocumentIdTestCase.java @@ -1,16 +1,18 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.document; -import com.yahoo.document.idstring.*; +import com.yahoo.document.idstring.IdIdString; import com.yahoo.vespa.objects.BufferSerializer; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import java.math.BigInteger; -import java.io.*; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.util.regex.Pattern; import java.util.Arrays; @@ -70,10 +72,6 @@ public class DocumentIdTestCase { //valid URIs new DocumentId("doc:blabla:something"); new DocumentId("doc:doc:doc"); - new DocumentId("userdoc:bla:2387:"); - new DocumentId("userdoc:bar:0:"); - new DocumentId("userdoc:bar:18446744073709551615:"); - new DocumentId("userdoc:foo:15:bar"); new DocumentId("id:namespace:type:n=42:whatever"); new DocumentId("id:namespace:type::whatever"); } catch (IllegalArgumentException iae) { @@ -87,13 +85,6 @@ public class DocumentIdTestCase { checkInvalidUri("doc:::"); checkInvalidUri("doc::/"); checkInvalidUri("doc"); - checkInvalidUri("userdoc:"); - checkInvalidUri("userdoc::"); - checkInvalidUri("userdoc:::"); - checkInvalidUri("userdoc:::/"); - checkInvalidUri("userdoc"); - checkInvalidUri("userdoc:-87987//"); - checkInvalidUri("userdoc:18446744073709551620/bar/"); checkInvalidUri("id:namespace:type"); checkInvalidUri("id:namespace:type:key-values"); checkInvalidUri("id:namespace:type:n=0,n=1:foo"); @@ -118,7 +109,7 @@ public class DocumentIdTestCase { //Compares globalId with C++ implementation located in // ~document-HEAD/document/src/tests/cpp-globalidbucketids.txt @Test - public void testCalculateGlobalId() throws IOException{ + public void testCalculateGlobalId() throws IOException { String file = "src/tests/cpp-globalidbucketids.txt"; BufferedReader fr = new BufferedReader(new FileReader(file)); @@ -178,91 +169,8 @@ public class DocumentIdTestCase { } @Test - public void testGroupdoc() { - try { - //valid - new DocumentId("groupdoc:blabla:something:jkl"); - new DocumentId("groupdoc:doc:doc:asd"); - new DocumentId("groupdoc:bar:0:a"); - new DocumentId("groupdoc:bar:18446744073709551615:"); - new DocumentId("groupdoc:foo:15:bar"); - } catch (IllegalArgumentException iae) { - fail(iae.getMessage()); - } - } - - @Test - public void testInvalidGroupdoc() { - checkInvalidUri("grouppdoc:blabla:something"); - checkInvalidUri("groupdoc:blablasomething"); - } - - @Test - public void testUriNamespace() { - DocumentId docId = new DocumentId("doc:bar:foo"); - assertEquals("doc:bar:foo", docId.toString()); - assertEquals("doc", docId.getScheme().getType().toString()); - assertEquals("bar", docId.getScheme().getNamespace()); - assertEquals("foo", docId.getScheme().getNamespaceSpecific()); - - docId = new DocumentId("userdoc:ns:90:boo"); - assertEquals("userdoc:ns:90:boo", docId.toString()); - assertEquals("userdoc", docId.getScheme().getType().toString()); - assertEquals("ns", docId.getScheme().getNamespace()); - assertEquals("boo", docId.getScheme().getNamespaceSpecific()); - assertEquals(90l, ((UserDocIdString) docId.getScheme()).getUserId()); - - docId = new DocumentId("userdoc:ns:18446744073709551615:boo"); - assertEquals("userdoc:ns:18446744073709551615:boo", docId.toString()); - assertEquals("userdoc", docId.getScheme().getType().toString()); - assertEquals("ns", docId.getScheme().getNamespace()); - assertEquals("boo", docId.getScheme().getNamespaceSpecific()); - assertEquals(new BigInteger("18446744073709551615").longValue(), ((UserDocIdString) docId.getScheme()).getUserId()); - - docId = new DocumentId("userdoc:ns:9223372036854775808:boo"); - assertEquals("userdoc:ns:9223372036854775808:boo", docId.toString()); - assertEquals("userdoc", docId.getScheme().getType().toString()); - assertEquals("ns", docId.getScheme().getNamespace()); - assertEquals("boo", docId.getScheme().getNamespaceSpecific()); - assertEquals(new BigInteger("9223372036854775808").longValue(), ((UserDocIdString) docId.getScheme()).getUserId()); - - BigInteger negativeUserId = new BigInteger("F00DCAFEDEADBABE", 16); - assertEquals(0xF00DCAFEDEADBABEl, negativeUserId.longValue()); - docId = new DocumentId("userdoc:ns:"+negativeUserId+":bar"); - assertEquals("userdoc:ns:17297704939806374590:bar", docId.toString()); - assertEquals(negativeUserId.longValue(), ((UserDocIdString) docId.getScheme()).getUserId()); - - docId = new DocumentId("orderdoc(31,19):ns2:1234:1268182861:foo"); - assertEquals("orderdoc(31,19):ns2:1234:1268182861:foo", docId.toString()); - assertEquals("orderdoc", docId.getScheme().getType().toString()); - assertEquals("ns2", docId.getScheme().getNamespace()); - assertEquals("foo", docId.getScheme().getNamespaceSpecific()); - assertEquals(31, ((OrderDocIdString)docId.getScheme()).getWidthBits()); - assertEquals(19, ((OrderDocIdString)docId.getScheme()).getDivisionBits()); - assertEquals("1234", ((OrderDocIdString)docId.getScheme()).getGroup()); - assertEquals(1234, ((OrderDocIdString)docId.getScheme()).getUserId()); - assertEquals(1268182861, ((OrderDocIdString)docId.getScheme()).getOrdering()); - } - - @Test public void testIdStrings() { - DocumentId docId; - docId = new DocumentId(new DocIdString("test", "baaaa")); - assertEquals("doc:test:baaaa", docId.toString()); - assertFalse(docId.hasDocType()); - - docId = new DocumentId(new UserDocIdString("test", 54, "something")); - assertEquals("userdoc:test:54:something", docId.toString()); - assertFalse(docId.hasDocType()); - - docId = new DocumentId(new UserDocIdString("test", 0xFFFFFFFFFFFFFFFFl, "something")); - assertEquals("userdoc:test:18446744073709551615:something", docId.toString()); - - //sign flipped - docId = new DocumentId(new UserDocIdString("test", -8193, "something")); - assertEquals("userdoc:test:18446744073709543423:something", docId.toString()); - - docId = new DocumentId(new IdIdString("namespace", "type", "g=group", "foobar")); + DocumentId docId = new DocumentId(new IdIdString("namespace", "type", "g=group", "foobar")); assertEquals("id:namespace:type:g=group:foobar", docId.toString()); assertTrue(docId.hasDocType()); assertEquals("type", docId.getDocType()); @@ -283,26 +191,15 @@ public class DocumentIdTestCase { assertTrue(user.getScheme().hasNumber()); assertEquals(42, user.getScheme().getNumber()); - user = new DocumentId("userdoc:ns:42:foo"); - assertFalse(user.getScheme().hasGroup()); - assertTrue(user.getScheme().hasNumber()); - assertEquals(42, user.getScheme().getNumber()); - DocumentId group = new DocumentId("id:ns:type:g=mygroup:foo"); assertTrue(group.getScheme().hasGroup()); assertFalse(group.getScheme().hasNumber()); assertEquals("mygroup", group.getScheme().getGroup()); - group = new DocumentId("groupdoc:ns:mygroup:foo"); + group = new DocumentId("id:ns:type:g=mygroup:foo"); assertTrue(group.getScheme().hasGroup()); assertFalse(group.getScheme().hasNumber()); assertEquals("mygroup", group.getScheme().getGroup()); - - DocumentId order = new DocumentId("orderdoc(5,2):ns:42:007:foo"); - assertTrue(order.getScheme().hasGroup()); - assertTrue(order.getScheme().hasNumber()); - assertEquals("42", order.getScheme().getGroup()); - assertEquals(42, order.getScheme().getNumber()); } @Test diff --git a/document/src/test/java/com/yahoo/document/GlobalIdTestCase.java b/document/src/test/java/com/yahoo/document/GlobalIdTestCase.java index c134f8e7770..cb818f12d3f 100644 --- a/document/src/test/java/com/yahoo/document/GlobalIdTestCase.java +++ b/document/src/test/java/com/yahoo/document/GlobalIdTestCase.java @@ -86,10 +86,10 @@ public class GlobalIdTestCase { @Test public void testToBucketId() { - verifyGidToBucketIdMapping("userdoc:ns:1:abc"); - verifyGidToBucketIdMapping("userdoc:ns:1000:abc"); - verifyGidToBucketIdMapping("userdoc:hsgf:18446744073700000000:dfdfsdfg"); - verifyGidToBucketIdMapping("groupdoc:ns:somegroup:hmm"); + verifyGidToBucketIdMapping("id:ns:mytype:n=1:abc"); + verifyGidToBucketIdMapping("id:ns:mytype:n=1000:abc"); + verifyGidToBucketIdMapping("id:hsgf:mytype:n=9146744073700000000:dfdfsdfg"); + verifyGidToBucketIdMapping("id:ns:mytype:g=somegroup:hmm"); verifyGidToBucketIdMapping("doc:foo:test"); verifyGidToBucketIdMapping("doc:myns:http://foo.bar"); verifyGidToBucketIdMapping("doc:jsrthsdf:a234aleingzldkifvasdfgadf"); diff --git a/document/src/test/java/com/yahoo/document/select/BucketSelectorTestCase.java b/document/src/test/java/com/yahoo/document/select/BucketSelectorTestCase.java index a1ad09c2329..aea5ea7fda8 100644 --- a/document/src/test/java/com/yahoo/document/select/BucketSelectorTestCase.java +++ b/document/src/test/java/com/yahoo/document/select/BucketSelectorTestCase.java @@ -17,11 +17,11 @@ public class BucketSelectorTestCase { @Test public void testExpressions() throws Exception { - assertBucketCount("id = \"userdoc:ns:123:foobar\"", 1); - assertBucketCount("id = \"userdoc:ns:123:foo*\"", 0); - assertBucketCount("id == \"userdoc:ns:123:f?oo*\"", 1); - assertBucketCount("id =~ \"userdoc:ns:123:foo*\"", 0); - assertBucketCount("id =~ \"userdoc:ns:123:foo?\"", 0); + assertBucketCount("id = \"id:ns:mytype:n=123:foobar\"", 1); + assertBucketCount("id = \"id:ns:mytype:n=123:foo*\"", 0); + assertBucketCount("id == \"id:ns:mytype:n=123:f?oo*\"", 1); + assertBucketCount("id =~ \"id:ns:mytype:n=123:foo*\"", 0); + assertBucketCount("id =~ \"id:ns:mytype:n=123:foo?\"", 0); assertBucketCount("id.user = 123", 1); assertBucketCount("id.user == 123", 1); assertBucketCount("id.group = \"yahoo.com\"", 1); @@ -39,7 +39,7 @@ public class BucketSelectorTestCase { assertBucket("id.bucket = 0x4000000000003018", new BucketId(16, 12312)); assertBucket("id.bucket == 0x4000000000000258", new BucketId(16, 600)); - assertBucket("id = \"userdoc:ns:123:foobar\"", new BucketId(0xeafff5320000007bL)); + assertBucket("id = \"id:ns:mytype:n=123:foobar\"", new BucketId(0xe8bd6e280000007bL)); assertBucket("id.user = 123", new BucketId(32, 123)); assertBucket("id.group = \"yahoo.com\"", new BucketId(32, 0x035837189a1acd50L)); @@ -52,8 +52,8 @@ public class BucketSelectorTestCase { @Test public void parenthesis_enclosed_expressions_inherit_bucket_selectors_from_children() throws Exception { - assertBucketCount("(id == \"userdoc:ns:123:foobar\")", 1); - assertBucket("(id = \"userdoc:ns:123:foobar\")", new BucketId(0xeafff5320000007bL)); + assertBucketCount("(id == \"id:ns:mytype:n=123:foobar\")", 1); + assertBucket("(id = \"id:ns:mytype:n=123:foobar\")", new BucketId(0xe8bd6e280000007bL)); assertBucketCount("(id.group = \"yahoo.com\" and (testdoctype1.hstringval == \"Doe\"))", 1); assertBucket("(id.group = \"yahoo.com\" and (testdoctype1 and (id.namespace == 'foo')))", new BucketId(32, 0x035837189a1acd50L)); } diff --git a/document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java b/document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java index 846f85e925a..6457a3deb82 100644 --- a/document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java +++ b/document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java @@ -74,7 +74,6 @@ public class DocumentSelectorTestCase { assertParse("id.namespace = \"*\""); assertParse("id.hash() > 0"); assertParse("id.namespace.hash() > 0"); - assertParse("id.order(5,2) > 100"); assertParse("music.artist = \"*\""); assertParse("music.artist.lowercase() = \"*\""); assertParse("music_.artist = \"*\""); @@ -187,9 +186,9 @@ public class DocumentSelectorTestCase { assertParse("mytype"); // Test document id. - assertParse("id == \"userdoc:ns:mytest\""); + assertParse("id == \"id:ns:mytype::mytest\""); assertParse("id.namespace == \"myspace\""); - assertParse("id.scheme == \"userdoc\""); + assertParse("id.scheme == \"id\""); assertParse("id.type == \"mytype\""); assertParse("id.user == 1234"); assertParse("id.bucket == 8388608", "id.bucket == 0x800000"); @@ -260,7 +259,7 @@ public class DocumentSelectorTestCase { public void testDocumentRemove() throws ParseException { assertEquals(Result.TRUE, evaluate("test", createRemove("id:ns:test::1"))); assertEquals(Result.FALSE, evaluate("test", createRemove("id:ns:null::1"))); - assertEquals(Result.FALSE, evaluate("test", createRemove("userdoc:test:1234:1"))); + assertEquals(Result.TRUE, evaluate("test", createRemove("id:ns:test:n=1234:1"))); assertEquals(Result.INVALID, evaluate("test.hint", createRemove("id:ns:test::1"))); assertEquals(Result.FALSE, evaluate("test.hint", createRemove("id:ns:null::1"))); assertEquals(Result.INVALID, evaluate("test.hint == 0", createRemove("id:ns:test::1"))); @@ -276,7 +275,7 @@ public class DocumentSelectorTestCase { public void testDocumentGet() throws ParseException { assertEquals(Result.TRUE, evaluate("test", createGet("id:ns:test::1"))); assertEquals(Result.FALSE, evaluate("test", createGet("id:ns:null::1"))); - assertEquals(Result.FALSE, evaluate("test", createGet("userdoc:test:1234:1"))); + assertEquals(Result.TRUE, evaluate("test", createGet("id:ns:test:n=1234:1"))); assertEquals(Result.INVALID, evaluate("test.hint", createGet("id:ns:test::1"))); assertEquals(Result.FALSE, evaluate("test.hint", createGet("id:ns:null::1"))); assertEquals(Result.INVALID, evaluate("test.hint == 0", createGet("id:ns:test::1"))); @@ -328,9 +327,8 @@ public class DocumentSelectorTestCase { List<DocumentPut> documents = new ArrayList<>(); documents.add(createDocument("doc:myspace:anything", 24, 2.0f, "foo", "bar")); documents.add(createDocument("doc:anotherspace:foo", 13, 4.1f, "bar", "foo")); - documents.add(createDocument("userdoc:myspace:1234:mail1", 15, 1.0f, "some", "some")); - documents.add(createDocument("userdoc:myspace:5678:bar", 14, 2.4f, "Yet", "More")); - documents.add(createDocument("orderdoc(31,19):ns2:1234:5678:foo", 14, 2.4f, "Yet", "More")); + documents.add(createDocument("id:myspace:test:n=1234:mail1", 15, 1.0f, "some", "some")); + documents.add(createDocument("id:myspace:test:n=5678:bar", 14, 2.4f, "Yet", "More")); documents.add(createDocument("id:myspace:test:n=2345:mail2", 15, 1.0f, "bar", "baz")); documents.add(createDocument("id:myspace:test:g=mygroup:qux", 15, 1.0f, "quux", "corge")); documents.add(createDocument("doc:myspace:missingint", null, 2.0f, null, "bar")); @@ -354,16 +352,14 @@ public class DocumentSelectorTestCase { documents.get(1).getDocument().setFieldValue("structarray", aval); MapFieldValue<IntegerFieldValue, StringFieldValue> mval = - new MapFieldValue<>((MapDataType)documents.get(1).getDocument().getField("mymap") - .getDataType()); + new MapFieldValue<>((MapDataType)documents.get(1).getDocument().getField("mymap").getDataType()); mval.put(new IntegerFieldValue(3), new StringFieldValue("a")); mval.put(new IntegerFieldValue(5), new StringFieldValue("b")); mval.put(new IntegerFieldValue(7), new StringFieldValue("c")); documents.get(1).getDocument().setFieldValue("mymap", mval); MapFieldValue<StringFieldValue, Array> amval = - new MapFieldValue<>((MapDataType)documents.get(1).getDocument().getField("structarrmap") - .getDataType()); + new MapFieldValue<>((MapDataType)documents.get(1).getDocument().getField("structarrmap").getDataType()); amval.put(new StringFieldValue("foo"), aval); Array<Struct> abval = new Array<>(documents.get(1).getDocument().getField("structarray").getDataType()); @@ -381,8 +377,7 @@ public class DocumentSelectorTestCase { amval.put(new StringFieldValue("bar"), abval); documents.get(1).getDocument().setFieldValue("structarrmap", amval); - WeightedSet<StringFieldValue> wsval = new WeightedSet<>(documents.get(1).getDocument().getField("stringweightedset") - .getDataType()); + WeightedSet<StringFieldValue> wsval = new WeightedSet<>(documents.get(1).getDocument().getField("stringweightedset").getDataType()); wsval.add(new StringFieldValue("foo")); wsval.add(new StringFieldValue("val1")); wsval.add(new StringFieldValue("val2")); @@ -396,16 +391,14 @@ public class DocumentSelectorTestCase { Array aval2 = new Array(documents.get(2).getDocument().getField("structarray").getDataType()); documents.get(2).getDocument().setFieldValue("structarray", aval2); - Array<IntegerFieldValue> intvals1 = new Array<>(documents.get(0).getDocument().getField("intarray") - .getDataType()); + Array<IntegerFieldValue> intvals1 = new Array<>(documents.get(0).getDocument().getField("intarray").getDataType()); intvals1.add(new IntegerFieldValue(12)); intvals1.add(new IntegerFieldValue(40)); intvals1.add(new IntegerFieldValue(60)); intvals1.add(new IntegerFieldValue(84)); documents.get(0).getDocument().setFieldValue("intarray", intvals1); - Array<IntegerFieldValue> intvals2 = new Array<>(documents.get(1).getDocument().getField("intarray") - .getDataType()); + Array<IntegerFieldValue> intvals2 = new Array<>(documents.get(1).getDocument().getField("intarray").getDataType()); intvals2.add(new IntegerFieldValue(3)); intvals2.add(new IntegerFieldValue(56)); intvals2.add(new IntegerFieldValue(23)); @@ -485,18 +478,19 @@ public class DocumentSelectorTestCase { assertEquals(Result.TRUE, evaluate("test.hint + 1 > 13", documents.get(1))); // Case where field is not present (i.e. null) is defined for (in)equality comparisons, but // not for other relations. - assertEquals(Result.TRUE, evaluate("test.hint != 1234", documents.get(7))); - assertEquals(Result.FALSE, evaluate("test.hint == 1234", documents.get(7))); - assertEquals(Result.INVALID, evaluate("test.hint < 1234", documents.get(7))); + DocumentPut doc1234 = documents.get(6); + assertEquals(Result.TRUE, evaluate("test.hint != 1234", doc1234)); + assertEquals(Result.FALSE, evaluate("test.hint == 1234", doc1234)); + assertEquals(Result.INVALID, evaluate("test.hint < 1234", doc1234)); // Propagation of Invalid through logical operators should match C++ implementation - assertEquals(Result.FALSE, evaluate("test.hint < 1234 and false", documents.get(7))); - assertEquals(Result.INVALID, evaluate("test.hint < 1234 and true", documents.get(7))); - assertEquals(Result.TRUE, evaluate("test.hint < 1234 or true", documents.get(7))); - assertEquals(Result.INVALID, evaluate("test.hint < 1234 or false", documents.get(7))); + assertEquals(Result.FALSE, evaluate("test.hint < 1234 and false", doc1234)); + assertEquals(Result.INVALID, evaluate("test.hint < 1234 and true", doc1234)); + assertEquals(Result.TRUE, evaluate("test.hint < 1234 or true", doc1234)); + assertEquals(Result.INVALID, evaluate("test.hint < 1234 or false", doc1234)); // Must be possible to predicate a sub-expression on the presence of a field without // propagating up an Invalid value from the comparison. - assertEquals(Result.FALSE, evaluate("test.hint and test.hint < 1234", documents.get(7))); - assertEquals(Result.FALSE, evaluate("test.hint != null and test.hint < 1234", documents.get(7))); + assertEquals(Result.FALSE, evaluate("test.hint and test.hint < 1234", doc1234)); + assertEquals(Result.FALSE, evaluate("test.hint != null and test.hint < 1234", doc1234)); // Document types. assertEquals(Result.TRUE, evaluate("test", documents.get(0))); @@ -508,46 +502,38 @@ public class DocumentSelectorTestCase { // Field existence assertEquals(Result.TRUE, evaluate("test.hint", documents.get(0))); assertEquals(Result.TRUE, evaluate("test.hstring", documents.get(0))); - assertEquals(Result.FALSE, evaluate("test.hint", documents.get(7))); - assertEquals(Result.FALSE, evaluate("test.hstring", documents.get(7))); - assertEquals(Result.TRUE, evaluate("not test.hint", documents.get(7))); - assertEquals(Result.TRUE, evaluate("not test.hstring", documents.get(7))); + assertEquals(Result.FALSE, evaluate("test.hint", doc1234)); + assertEquals(Result.FALSE, evaluate("test.hstring", doc1234)); + assertEquals(Result.TRUE, evaluate("not test.hint", doc1234)); + assertEquals(Result.TRUE, evaluate("not test.hstring", doc1234)); assertEquals(Result.TRUE, evaluate("test.hint != null", documents.get(0))); assertEquals(Result.TRUE, evaluate("null != test.hint", documents.get(0))); assertEquals(Result.FALSE, evaluate("test.hint == null", documents.get(0))); assertEquals(Result.FALSE, evaluate("null == test.hint", documents.get(0))); - assertEquals(Result.TRUE, evaluate("null == test.hint", documents.get(7))); - assertEquals(Result.TRUE, evaluate("test.hint == null", documents.get(7))); - assertEquals(Result.FALSE, evaluate("test.hint != null", documents.get(7))); - assertEquals(Result.FALSE, evaluate("null != test.hint", documents.get(7))); + assertEquals(Result.TRUE, evaluate("null == test.hint", doc1234)); + assertEquals(Result.TRUE, evaluate("test.hint == null", doc1234)); + assertEquals(Result.FALSE, evaluate("test.hint != null", doc1234)); + assertEquals(Result.FALSE, evaluate("null != test.hint", doc1234)); - assertEquals(Result.TRUE, evaluate("test.hint or true", documents.get(7))); - assertEquals(Result.TRUE, evaluate("not test.hint and true", documents.get(7))); - assertEquals(Result.FALSE, evaluate("not test.hint and false", documents.get(7))); + assertEquals(Result.TRUE, evaluate("test.hint or true", doc1234)); + assertEquals(Result.TRUE, evaluate("not test.hint and true", doc1234)); + assertEquals(Result.FALSE, evaluate("not test.hint and false", doc1234)); // Id values. assertEquals(Result.TRUE, evaluate("id == \"doc:myspace:anything\"", documents.get(0))); assertEquals(Result.TRUE, evaluate(" iD== \"doc:myspace:anything\" ", documents.get(0))); assertEquals(Result.FALSE, evaluate("id == \"doc:myspa:nything\"", documents.get(0))); assertEquals(Result.TRUE, evaluate("Id.scHeme == \"doc\"", documents.get(0))); - assertEquals(Result.FALSE, evaluate("id.scheme == \"userdoc\"", documents.get(0))); - assertEquals(Result.TRUE, evaluate("id.type == \"test\"", documents.get(5))); - assertEquals(Result.FALSE, evaluate("id.type == \"wrong\"", documents.get(5))); + assertEquals(Result.FALSE, evaluate("id.scheme == \"id\"", documents.get(0))); + assertEquals(Result.TRUE, evaluate("id.type == \"test\"", documents.get(4))); + assertEquals(Result.FALSE, evaluate("id.type == \"wrong\"", documents.get(4))); assertEquals(Result.TRUE, evaluate("Id.namespaCe == \"myspace\"", documents.get(0))); assertEquals(Result.FALSE, evaluate("id.NaMespace == \"pace\"", documents.get(0))); assertEquals(Result.TRUE, evaluate("id.specific == \"anything\"", documents.get(0))); assertEquals(Result.TRUE, evaluate("id.user=1234", documents.get(2))); - assertEquals(Result.TRUE, evaluate("id.user=1234", documents.get(4))); - assertEquals(Result.TRUE, evaluate("id.group=\"1234\"", documents.get(4))); - assertEquals(Result.TRUE, evaluate("id.user=2345", documents.get(5))); - assertEquals(Result.TRUE, evaluate("id.group=\"mygroup\"", documents.get(6))); - - assertEquals(Result.TRUE, evaluate("id.order(31,19)=5678", documents.get(4))); - assertEquals(Result.TRUE, evaluate("id.order(31,19)<=5678", documents.get(4))); - assertEquals(Result.FALSE, evaluate("id.order(31,19)>5678", documents.get(4))); - assertEquals(Result.FALSE, evaluate("id.order(25,23)==5678", documents.get(4))); - assertEquals(Result.FALSE, evaluate("id.order(31,19)=5678", documents.get(3))); + assertEquals(Result.TRUE, evaluate("id.user=2345", documents.get(4))); + assertEquals(Result.TRUE, evaluate("id.group=\"mygroup\"", documents.get(5))); assertError("id.user == 1234", documents.get(0), "User identifier is null."); assertError("id.group == 1234", documents.get(3), "Group identifier is null."); diff --git a/document/src/test/java/com/yahoo/document/select/LogicalNodeTestCase.java b/document/src/test/java/com/yahoo/document/select/LogicalNodeTestCase.java index 25aca22b108..5e06085b8c9 100644 --- a/document/src/test/java/com/yahoo/document/select/LogicalNodeTestCase.java +++ b/document/src/test/java/com/yahoo/document/select/LogicalNodeTestCase.java @@ -35,11 +35,6 @@ public class LogicalNodeTestCase { } @Override - public OrderingSpecification getOrdering(int order) { - return node.getOrdering(order); - } - - @Override public void accept(Visitor visitor) { node.accept(visitor); } diff --git a/document/src/test/java/com/yahoo/document/select/OrderingSpecificationTestCase.java b/document/src/test/java/com/yahoo/document/select/OrderingSpecificationTestCase.java deleted file mode 100644 index 8c0f7402704..00000000000 --- a/document/src/test/java/com/yahoo/document/select/OrderingSpecificationTestCase.java +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.document.select; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -/** - * @author HÃ¥kon Humberset - */ -public class OrderingSpecificationTestCase { - - @Test - public void testExpressions() throws Exception { - assertSelection("id.order(10,10) < 100", OrderingSpecification.DESCENDING, - new OrderingSpecification(OrderingSpecification.DESCENDING, (long)99, (short)10, (short)10)); - assertSelection("id.order(10,10) <= 100", OrderingSpecification.DESCENDING, - new OrderingSpecification(OrderingSpecification.DESCENDING, (long)100, (short)10, (short)10)); - assertSelection("id.order(10,10) > 100", OrderingSpecification.DESCENDING, null); - assertSelection("id.order(10,10) > 100", OrderingSpecification.ASCENDING, - new OrderingSpecification(OrderingSpecification.ASCENDING, (long)101, (short)10, (short)10)); - assertSelection("id.user==1234 AND id.order(10,10) > 100", OrderingSpecification.ASCENDING, - new OrderingSpecification(OrderingSpecification.ASCENDING, (long)101, (short)10, (short)10)); - assertSelection("id.order(10,10) >= 100", OrderingSpecification.ASCENDING, - new OrderingSpecification(OrderingSpecification.ASCENDING, (long)100, (short)10, (short)10)); - assertSelection("id.order(10,10) == 100", OrderingSpecification.ASCENDING, - new OrderingSpecification(OrderingSpecification.ASCENDING, (long)100, (short)10, (short)10)); - assertSelection("id.order(10,10) = 100", OrderingSpecification.DESCENDING, - new OrderingSpecification(OrderingSpecification.DESCENDING, (long)100, (short)10, (short)10)); - assertSelection("id.order(10,10) > 30 AND id.order(10,10) < 100", OrderingSpecification.ASCENDING, - new OrderingSpecification(OrderingSpecification.ASCENDING, (long)31, (short)10, (short)10)); - assertSelection("id.order(10,10) > 30 AND id.order(10,10) < 100", OrderingSpecification.DESCENDING, - new OrderingSpecification(OrderingSpecification.DESCENDING, (long)99, (short)10, (short)10)); - assertSelection("id.order(10,10) > 30 OR id.order(10,10) > 70", OrderingSpecification.ASCENDING, - new OrderingSpecification(OrderingSpecification.ASCENDING, (long)31, (short)10, (short)10)); - assertSelection("id.order(10,10) < 30 OR id.order(10,10) < 70", OrderingSpecification.DESCENDING, - new OrderingSpecification(OrderingSpecification.DESCENDING, (long)69, (short)10, (short)10)); - } - - public void assertSelection(String selection, int ordering, OrderingSpecification wanted) throws Exception { - DocumentSelector selector = new DocumentSelector(selection); - if (wanted != null) { - assertEquals(wanted, selector.getOrdering(ordering)); - } else { - assertNull(selector.getOrdering(ordering)); - } - } - -} |