aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/test
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2023-02-15 18:59:29 +0000
committerArne Juul <arnej@yahooinc.com>2023-02-15 18:59:29 +0000
commit27fd02d0843f4fdfb353fecb39632f343d016fb4 (patch)
tree2c4ccc76044359bb3dc4b4c6e11c71f21bb5ce51 /searchlib/src/test
parent1742d97a1a17276f3d89216593a1d0906e73f8a4 (diff)
support foo(bar).out in "simple" factory method
Diffstat (limited to 'searchlib/src/test')
-rw-r--r--searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/ReferenceTestCase.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/ReferenceTestCase.java b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/ReferenceTestCase.java
index fbc7a96f1f2..1060e721363 100644
--- a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/ReferenceTestCase.java
+++ b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/ReferenceTestCase.java
@@ -31,4 +31,43 @@ public class ReferenceTestCase {
assertEquals("foo", new Reference("foo", new Arguments(), null).toString());
}
+ @Test
+ public void testFromString() {
+ Reference ref = Reference.fromIdentifier("foo_bar_1");
+ assertFalse(ref.isSimple());
+ assertTrue(ref.isIdentifier());
+ assertEquals(0, ref.arguments().size());
+ assertEquals(null, ref.output());
+ assertEquals("foo_bar_1", ref.toString());
+
+ ref = Reference.simple("foo_1", "bar_2");
+ assertTrue(ref.isSimple());
+ assertFalse(ref.isIdentifier());
+ assertEquals(1, ref.arguments().size());
+ assertTrue(ref.simpleArgument().isPresent());
+ assertEquals(null, ref.output());
+ assertEquals("foo_1(bar_2)", ref.toString());
+
+ assertFalse(Reference.simple("foo").isPresent());
+ assertFalse(Reference.simple("foo()").isPresent());
+ assertTrue(Reference.simple("x(y)").isPresent());
+
+ ref = Reference.simple("foo_1(bar_2)").orElseThrow();
+ assertTrue(ref.isSimple());
+ assertFalse(ref.isIdentifier());
+ assertEquals(1, ref.arguments().size());
+ assertTrue(ref.simpleArgument().isPresent());
+ assertEquals("bar_2", ref.simpleArgument().get());
+ assertEquals(null, ref.output());
+ assertEquals("foo_1(bar_2)", ref.toString());
+
+ ref = Reference.simple("foo_1(bar_2).baz_3").orElseThrow();
+ assertTrue(ref.isSimple());
+ assertFalse(ref.isIdentifier());
+ assertEquals(1, ref.arguments().size());
+ assertTrue(ref.simpleArgument().isPresent());
+ assertEquals("baz_3", ref.output());
+ assertEquals("foo_1(bar_2).baz_3", ref.toString());
+ }
+
}