This is an automated email from the ASF dual-hosted git repository.

sergeykamov pushed a commit to branch NLPCRAFT-16
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/NLPCRAFT-16 by this push:
     new 7cd6850  WIP.
7cd6850 is described below

commit 7cd6850b557f68689257a23d7eaab2db20f881e5
Author: Sergey Kamov <[email protected]>
AuthorDate: Mon Mar 16 13:35:39 2020 +0300

    WIP.
---
 .../mgrs/nlp/enrichers/NCEnricherBaseSpec.scala    | 25 ++++---
 .../mgrs/nlp/enrichers/NCEnrichersTestBeans.scala  | 76 ++++++++++++++++++----
 .../nlp/enrichers/limit/NCEnricherLimitSpec.scala  |  4 +-
 .../NCEnricherSortSpec.scala}                      | 23 ++++---
 4 files changed, 93 insertions(+), 35 deletions(-)

diff --git 
a/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/NCEnricherBaseSpec.scala
 
b/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/NCEnricherBaseSpec.scala
index 18b589a..4937301 100644
--- 
a/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/NCEnricherBaseSpec.scala
+++ 
b/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/NCEnricherBaseSpec.scala
@@ -46,20 +46,19 @@ class NCEnricherBaseSpec {
       * @param reqTxt
       * @param expToks
       */
-    private[enrichers] def check(reqTxt: String, expToks: NCTestToken*): Unit 
= {
+    private[enrichers] def checkExists(reqTxt: String, expToks: NCTestToken*): 
Unit = {
         val res = client.ask(reqTxt)
 
         assertTrue(res.isOk)
         assertTrue(res.getResult.isPresent)
 
         val sens = NCTestSentence.deserialize(res.getResult.get())
-
-        require(sens.size == 1, s"Unexpected response size: ${sens.size}")
-
         val expSen = NCTestSentence(expToks)
-        val recSen = sens.head
 
-        assertEquals(expSen, recSen, s"Unexpected response [expected=$expSen, 
received=$recSen]")
+        assertTrue(
+            sens.exists(_ == expSen),
+            s"Required sentence not found [expected=$expSen, 
found=${sens.mkString("\n")}]"
+        )
     }
 
     /**
@@ -68,24 +67,24 @@ class NCEnricherBaseSpec {
       * @param reqTxt
       * @param expToks
       */
-    private[enrichers] def checkMultiple(reqTxt: String, expToks: 
Seq[Seq[NCTestToken]]): Unit = {
+    private[enrichers] def checkAll(reqTxt: String, expToks: 
Seq[Seq[NCTestToken]]): Unit = {
         val res = client.ask(reqTxt)
 
         assertTrue(res.isOk)
         assertTrue(res.getResult.isPresent)
 
         val expSens = expToks.map(NCTestSentence(_))
-        val recSens = NCTestSentence.deserialize(res.getResult.get())
+        val sens = NCTestSentence.deserialize(res.getResult.get())
 
         require(
-            expSens.size == recSens.size,
-            s"Unexpected response size [expected=${expSens.size}, 
received=${recSens.size}]"
+            expSens.size == sens.size,
+            s"Unexpected response size [expected=${expSens.size}, 
received=${sens.size}]"
         )
 
-        for (sen ← expSens)
+        for (expSen ← expSens)
             require(
-                recSens.exists(_ == sen),
-                s"Required sentence not found [expected=$sen, 
found=${recSens.mkString("\n")}]"
+                sens.exists(_ == expSen),
+                s"Required sentence not found [expected=$expSen, 
found=${sens.mkString("\n")}]"
             )
     }
 }
diff --git 
a/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/NCEnrichersTestBeans.scala
 
b/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/NCEnrichersTestBeans.scala
index 3cb0f35..fa24df6 100644
--- 
a/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/NCEnrichersTestBeans.scala
+++ 
b/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/NCEnrichersTestBeans.scala
@@ -81,15 +81,62 @@ case class NCTestMetroToken(origText: String, metro: 
String) extends NCTestToken
 // Probe enrichers.
 case class NCTestSortToken(
     origText: String,
-    asc: Option[Boolean],
     subjNotes: Seq[String],
     subjIndexes: Seq[Int],
-    byNotes: Option[Seq[String]],
-    byIndexes: Option[Seq[Int]]
+    byNotes: Option[Seq[String]] = None,
+    byIndexes: Option[Seq[Int]] = None,
+    asc: Option[Boolean] = None
 ) extends NCTestToken {
     override def id: String = "nlpcraft:sort"
 }
 
+object NCTestSortToken {
+    def apply(
+        origText: String,
+        subjNotes: Seq[String],
+        subjIndexes: Seq[Int],
+        asc: Boolean
+    ): NCTestSortToken = new NCTestSortToken(origText, subjNotes, subjIndexes, 
None, None, Some(asc))
+
+    def apply(
+        origText: String,
+        subjNote: String,
+        subjIndex: Int,
+        asc: Boolean
+    ): NCTestSortToken = new NCTestSortToken(origText, Seq(subjNote), 
Seq(subjIndex), None, None, Some(asc))
+
+    def apply(
+        origText: String,
+        subjNote: String,
+        subjIndex: Int
+    ): NCTestSortToken = new NCTestSortToken(origText, Seq(subjNote), 
Seq(subjIndex), None, None, None)
+
+    def apply(
+        origText: String,
+        subjNotes: Seq[String],
+        subjIndexes: Seq[Int],
+        byNotes: Seq[String],
+        byIndexes: Seq[Int]
+    ): NCTestSortToken = new NCTestSortToken(origText, subjNotes, subjIndexes, 
Some(byNotes), Some(byIndexes), None)
+
+    def apply(
+        origText: String,
+        subjNote: String,
+        subjIndex: Int,
+        byNote: String,
+        byIndex: Int): NCTestSortToken =
+        new NCTestSortToken(origText, Seq(subjNote), Seq(subjIndex), 
Some(Seq(byNote)), Some(Seq(byIndex)), None)
+
+    def apply(
+        origText: String,
+        subjNote: String,
+        subjIndex: Int,
+        byNote: String,
+        byIndex: Int,
+        asc: Boolean): NCTestSortToken =
+        new NCTestSortToken(origText, Seq(subjNote), Seq(subjIndex), 
Some(Seq(byNote)), Some(Seq(byIndex)), Some(asc))
+}
+
 case class NCTestRelationToken(origText: String, `type`: String, indexes: 
Seq[Int], note: String) extends NCTestToken {
     override def id: String = "nlpcraft:relation"
 }
@@ -98,7 +145,13 @@ case class NCTestAggregationToken(origText: String, `type`: 
String, indexes: Seq
     override def id: String = "nlpcraft:aggregation"
 }
 
-case class NCTestLimitToken(origText: String, limit: Double, indexes: 
Seq[Int], note: String, asc: Option[Boolean]) extends NCTestToken {
+case class NCTestLimitToken(
+    origText: String,
+    limit: Double,
+    indexes: Seq[Int],
+    note: String,
+    asc: Option[Boolean] = None
+) extends NCTestToken {
     override def id: String = "nlpcraft:limit"
 }
 
@@ -124,14 +177,13 @@ object NCTestToken {
             case "nlpcraft:metro" ⇒ NCTestMetroToken(txt, metro = 
t.meta("metro"))
 
             case "nlpcraft:sort" ⇒
-                NCTestSortToken(
-                    txt,
-                    asc = t.meta("asc"),
-                    subjNotes = t.meta("subjnotes"),
-                    subjIndexes = t.meta("subjindexes"),
-                    byNotes = t.meta("bynotes"),
-                    byIndexes = t.meta("byindexes")
-                )
+                val subjNotes: Seq[String] = t.meta("subjnotes")
+                val subjIndexes: Seq[Int] = t.meta("subjindexes")
+                val byNotes: Option[Seq[String]] = t.meta("bynotes")
+                val byIndexes: Option[Seq[Int]] = t.meta("byindexes")
+                val asc: Option[Boolean] = t.meta("asc")
+
+                NCTestSortToken(txt, subjNotes, subjIndexes, byNotes, 
byIndexes, asc)
             case "nlpcraft:relation" ⇒
                 NCTestRelationToken(
                     txt,
diff --git 
a/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCEnricherLimitSpec.scala
 
b/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCEnricherLimitSpec.scala
index 3b65dff..1e87143 100644
--- 
a/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCEnricherLimitSpec.scala
+++ 
b/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCEnricherLimitSpec.scala
@@ -21,7 +21,7 @@ import 
org.apache.nlpcraft.probe.mgrs.nlp.enrichers.{NCEnricherBaseSpec, NCTestL
 import org.junit.jupiter.api.Test
 
 /**
-  * Limit enricher tests.
+  * Limit enricher test.
   */
 class NCEnricherLimitSpec extends NCEnricherBaseSpec {
     /**
@@ -30,7 +30,7 @@ class NCEnricherLimitSpec extends NCEnricherBaseSpec {
       */
     @Test
     def test(): Unit = {
-        check(
+        checkExists(
             "top 5 A",
             NCTestLimitToken("top 5", limit = 5, indexes = Seq(1), note = "A", 
asc = Some(true)),
             NCTestUserToken("A", "A")
diff --git 
a/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCEnricherLimitSpec.scala
 
b/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/sort/NCEnricherSortSpec.scala
similarity index 63%
copy from 
src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCEnricherLimitSpec.scala
copy to 
src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/sort/NCEnricherSortSpec.scala
index 3b65dff..b02eb0d 100644
--- 
a/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/limit/NCEnricherLimitSpec.scala
+++ 
b/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/sort/NCEnricherSortSpec.scala
@@ -15,25 +15,32 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.limit
+package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.sort
 
-import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.{NCEnricherBaseSpec, 
NCTestLimitToken, NCTestUserToken}
+import org.apache.nlpcraft.probe.mgrs.nlp.enrichers.{NCEnricherBaseSpec, 
NCTestNlpToken ⇒ Nlp, NCTestSortToken ⇒ Sort, NCTestUserToken ⇒ User}
 import org.junit.jupiter.api.Test
 
 /**
-  * Limit enricher tests.
+  * Sort enricher test.
   */
-class NCEnricherLimitSpec extends NCEnricherBaseSpec {
+class NCEnricherSortSpec extends NCEnricherBaseSpec {
     /**
       *
       * @throws Exception
       */
     @Test
     def test(): Unit = {
-        check(
-            "top 5 A",
-            NCTestLimitToken("top 5", limit = 5, indexes = Seq(1), note = "A", 
asc = Some(true)),
-            NCTestUserToken("A", "A")
+        checkExists(
+            "sort A",
+            Sort(origText = "sort", subjNote = "A", subjIndex = 1),
+            User("A", "A")
+        )
+        checkExists(
+            "sort A by A",
+            Sort(origText = "sort", subjNote = "A", subjIndex = 1, byNote = 
"A", byIndex = 3),
+            User("A", "A"),
+            Nlp("by", true),
+            User("A", "A")
         )
     }
 }

Reply via email to