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

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


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

commit 4898cbc899a8f4a86443b48b1148dbb108a3595d
Author: Sergey Kamov <[email protected]>
AuthorDate: Thu Apr 7 19:48:45 2022 +0300

    WIP.
---
 .../examples/pizzeria/PizzeriaModelSpec.scala      | 42 +++++++++++++---------
 1 file changed, 25 insertions(+), 17 deletions(-)

diff --git 
a/nlpcraft-examples/pizzeria/src/test/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaModelSpec.scala
 
b/nlpcraft-examples/pizzeria/src/test/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaModelSpec.scala
index 4e3b22cf..d899e4cc 100644
--- 
a/nlpcraft-examples/pizzeria/src/test/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaModelSpec.scala
+++ 
b/nlpcraft-examples/pizzeria/src/test/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaModelSpec.scala
@@ -28,17 +28,18 @@ import scala.collection.mutable
   *
   */
 class PizzeriaModelSpec:
-    private class TestWrapper extends PizzeriaModel:
+    private class ModelTestWrapper extends PizzeriaModel:
         private var o: PizzeriaOrder = _
         override def doExecute(im: NCIntentMatch, o: PizzeriaOrder): NCResult =
             val res = super.doExecute(im, o)
             this.o = o
             res
         def getLastExecutedOrder: PizzeriaOrder = o
+        def clearLastExecutedOrder(): Unit = o = null
 
-    case class Builder(state: State):
+    class Builder:
         private val o = new PizzeriaOrder
-        o.setState(state)
+        o.setState(NO_DIALOG)
         def withPizza(name: String, size: String, qty: Int): Builder =
             o.add(Seq(Pizza(name, Some(size), Some(qty))), Seq.empty)
             this
@@ -47,7 +48,7 @@ class PizzeriaModelSpec:
             this
         def build: PizzeriaOrder = o
 
-    private val mdl = new TestWrapper()
+    private val mdl = new ModelTestWrapper()
     private val client = new NCModelClient(mdl)
 
     private val msgs = mutable.ArrayBuffer.empty[mutable.ArrayBuffer[String]]
@@ -67,9 +68,7 @@ class PizzeriaModelSpec:
 
         require(errs.isEmpty)
 
-    private def dialog(reqs: String*): Unit = dialog(None, reqs*)
-    private def dialog(expResOrder: PizzeriaOrder, reqs: String*): Unit = 
dialog(Option(expResOrder), reqs*)
-    private def dialog(expResOrderOpt: Option[PizzeriaOrder], reqs: String*): 
Unit =
+    private def dialog(exp: PizzeriaOrder, reqs: String*): Unit =
         val testMsgs = mutable.ArrayBuffer.empty[String]
         msgs += testMsgs
 
@@ -77,6 +76,8 @@ class PizzeriaModelSpec:
 
         for ((txt, idx) <- reqs.zipWithIndex)
             try
+                mdl.clearLastExecutedOrder()
+
                 val resp = client.ask(txt, null, "userId")
 
                 testMsgs += s">> Request: $txt"
@@ -88,15 +89,12 @@ class PizzeriaModelSpec:
                     errs += testNum -> new Exception(s"Unexpected result for 
test:$testNum [expected:\n$expType, type=${resp.getType}]")
 
                 if idx == reqs.size - 1 then
-                    expResOrderOpt match
-                        case Some(expResOrder) =>
-                            val lastOrder = mdl.getLastExecutedOrder
-                            def s(o: PizzeriaOrder) = if o == null then null 
else s"Order [state=${o.getState}, desc=${o.getDescription}]"
-                            val s1 = s(expResOrder)
-                            val s2 = s(lastOrder)
-                            if s1 != s2 then
-                                errs += testNum -> new Exception(s"Unexpected 
result for test (excepted/real):$testNum\n$s1\n$s2")
-                        case None => // No-op.
+                    val lastOrder = mdl.getLastExecutedOrder
+                    def s(o: PizzeriaOrder) = if o == null then null else 
s"Order [state=${o.getState}, desc=${o.getDescription}]"
+                    val s1 = s(exp)
+                    val s2 = s(lastOrder)
+                    if s1 != s2 then
+                        errs += testNum -> new Exception(s"Unexpected result 
for test (excepted/real):$testNum\n$s1\n$s2")
             catch
                 case e: Exception => errs += testNum -> new Exception(s"Error 
during test [num=$testNum]", e)
 
@@ -111,12 +109,18 @@ class PizzeriaModelSpec:
     @Test
     def test(): Unit =
         dialog(
+            new Builder().withDrink("tea", 1).build,
             "One tea",
             "yes",
             "yes"
         )
 
         dialog(
+            new Builder().
+                withPizza("carbonara", "large", 1).
+                withPizza("marinara", "small", 1).
+                withDrink("tea", 1).
+                build,
             "I want to order carbonara, marinara and tea",
             "large size please",
             "smallest",
@@ -125,12 +129,14 @@ class PizzeriaModelSpec:
         )
 
         dialog(
+            new Builder().withPizza("carbonara", "small", 2).build,
             "carbonara two small",
             "yes",
             "yes"
         )
 
         dialog(
+            new Builder().withPizza("carbonara", "small", 1).build,
             "carbonara",
             "small",
             "yes",
@@ -138,11 +144,13 @@ class PizzeriaModelSpec:
         )
 
         dialog(
+            null,
             "marinara",
             "stop"
         )
+
         dialog(
-            Builder(NO_DIALOG).
+            new Builder().
                 withPizza("margherita", "small", 2).
                 withPizza("marinara", "small", 3).
                 withDrink("tea", 1).

Reply via email to