You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by se...@apache.org on 2020/12/21 10:15:34 UTC
[incubator-nlpcraft] 01/01: DSL predicates priorities test added.
This is an automated email from the ASF dual-hosted git repository.
sergeykamov pushed a commit to branch NLPCRAFT-203
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
commit f66504d93cd298a165c5be9dbb796a9d451b84cb
Author: Sergey Kamov <se...@apache.org>
AuthorDate: Mon Dec 21 13:15:25 2020 +0300
DSL predicates priorities test added.
---
.../nlpcraft/model/NCIntentPrioritiesSpec.scala | 62 ++++++++++++++++++++++
1 file changed, 62 insertions(+)
diff --git a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/NCIntentPrioritiesSpec.scala b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/NCIntentPrioritiesSpec.scala
new file mode 100644
index 0000000..a49079c
--- /dev/null
+++ b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/NCIntentPrioritiesSpec.scala
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nlpcraft.model
+
+import org.apache.nlpcraft.{NCTestContext, NCTestEnvironment}
+import org.junit.jupiter.api.Assertions.assertEquals
+import org.junit.jupiter.api.Test
+
+import java.util
+import java.util.Collections
+
+/**
+ * Intents priorities test model.
+ */
+class NCIntentPrioritiesSpecModel extends NCModelAdapter(
+ "nlpcraft.priorities.model.test", "Priorities Test Model", "1.0"
+) {
+ override def getElements: util.Set[NCElement] =
+ Collections.singleton(new NCElement { override def getId: String = "x" } )
+
+ @NCIntent("intent=low term(x)={id == 'x'} term(city)={id == 'nlpcraft:city'}?")
+ private def onLow(ctx: NCIntentMatch): NCResult = NCResult.text("low")
+
+ @NCIntent("intent=high term(x)={id == 'x'} term(city)={id == 'nlpcraft:city'}")
+ private def onHigh(ctx: NCIntentMatch): NCResult = NCResult.text("high")
+}
+
+/**
+ * Intents priorities test.
+ *
+ * It checks that intent2 priority higher that intent1
+ * Note that element `x` added because `city` is optional and at least one element should be in text for matching.
+ */
+@NCTestEnvironment(model = classOf[NCIntentPrioritiesSpecModel], startClient = true)
+class NCIntentPrioritiesSpec extends NCTestContext {
+ private def checkHigh(txts: String*): Unit =
+ txts.foreach(txt ⇒ assertEquals("high", getClient.ask(txt).getIntentId, s"Error on: $txt"))
+
+ @Test
+ def test(): Unit =
+ checkHigh(
+ "Moscow x",
+ "London x",
+ "x berlin",
+ "x Berlin, Germany"
+ )
+}