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")
)
}
}