public async Task TestMatchedIntent() { var recognizer = new LucyRecognizer() { ResourceId = "test.lucy.yaml" }; var activity = new Activity(ActivityTypes.Message) { Text = "favorite color is blue" }; var tc = new TurnContext(new TestAdapter(), activity); tc.TurnState.Add(ResourceExplorer); var dc = new DialogContext(new DialogSet(), tc, new DialogState()); var results = await recognizer.RecognizeAsync(dc, activity); Assert.IsTrue(results.Intents[LucyRecognizer.MatchedIntent].Score > 0); Assert.IsNotNull(results.Entities.Property("colors")); string colorProperty = (string)results.Entities["colors"][0]; Assert.AreEqual("blue", colorProperty); dynamic colorProperty2 = results.Entities["$instance"]["colors"][0]; Assert.AreEqual("colors", (String)colorProperty2.type); Assert.AreEqual(18, (int)colorProperty2.startIndex); Assert.AreEqual(22, (int)colorProperty2.endIndex); }
public async Task TestEntityResultMapping() { var recognizer = new LucyRecognizer() { ResourceId = "test.lucy.yaml", ExternalEntityRecognizer = new MockLuisRecognizer() }; var activity = new Activity(ActivityTypes.Message) { Text = "height is 6 inches" }; var tc = new TurnContext(new TestAdapter(), activity); tc.TurnState.Add(ResourceExplorer); var dc = new DialogContext(new DialogSet(), tc, new DialogState()); var results = await recognizer.RecognizeAsync(dc, activity); Assert.IsNotNull(results.Entities.Property("Add()")); //Assert.IsNotNull(results.Entities.Property("number")); Assert.IsNull(results.Entities.Property("foo")); dynamic heightProperty = results.Entities["Add()"][0]["heightProperty"]; Assert.IsNotNull(heightProperty); dynamic dimension = heightProperty[0].dimension; Assert.IsNotNull(dimension); dynamic resolution = dimension[0]; Assert.AreEqual(6, (int)resolution.number); Assert.AreEqual("Inch", (string)resolution.units); dynamic dimensionInstance = heightProperty[0]["$instance"]["dimension"][0]; Assert.AreEqual("dimension", (string)dimensionInstance.type); Assert.AreEqual(10, (int)dimensionInstance.startIndex); Assert.AreEqual(18, (int)dimensionInstance.endIndex); Assert.AreEqual("6 inches", (string)dimensionInstance.text); dynamic instanceEntities = results.Entities["$instance"]; Assert.IsNotNull(instanceEntities); Assert.IsNotNull(instanceEntities.Property("Add()")); //Assert.IsNotNull(instanceEntities.Property("number")); Assert.IsNull(instanceEntities.Property("foo")); }
public async Task TestNoneIntent() { var recognizer = new LucyRecognizer() { ResourceId = "test.lucy.yaml" }; var activity = new Activity(ActivityTypes.Message) { Text = "xxxx" }; var tc = new TurnContext(new TestAdapter(), activity); tc.TurnState.Add(ResourceExplorer); var dc = new DialogContext(new DialogSet(), tc, new DialogState()); var results = await recognizer.RecognizeAsync(dc, activity); Assert.AreEqual(1, results.Intents.Count); Assert.IsTrue(results.Intents[LucyRecognizer.NoneIntent].Score > 0); }
public async Task TestValueMessage() { var recognizer = new LucyRecognizer() { ResourceId = "test.lucy.yaml", Intents = new string[] { "Add()" } }; var activity = new Activity(ActivityTypes.Message) { Text = null, Value = new { url = "http://foo.com" } }; var tc = new TurnContext(new TestAdapter(), activity); tc.TurnState.Add(ResourceExplorer); var dc = new DialogContext(new DialogSet(), tc, new DialogState()); var results = await recognizer.RecognizeAsync(dc, activity); Assert.AreEqual(1, results.Intents.Count); Assert.IsTrue(results.Intents[LucyRecognizer.NoneIntent].Score > 0); }
public async Task TestIntents() { var recognizer = new LucyRecognizer() { ResourceId = "test.lucy.yaml", Intents = new string[] { "Add()" }, ExternalEntityRecognizer = new MockLuisRecognizer() }; var activity = new Activity(ActivityTypes.Message) { Text = "height is 6 inches" }; var tc = new TurnContext(new TestAdapter(), activity); tc.TurnState.Add(ResourceExplorer); var dc = new DialogContext(new DialogSet(), tc, new DialogState()); var results = await recognizer.RecognizeAsync(dc, activity); Assert.AreEqual(1.0f, results.Intents["Add()"].Score); }