Exemplo n.º 1
0
        public static XmlNode Parse(string xml)
        {
            var parser = XmlGrammar.CreateParser();
            var result = parser.Parse(xml);

            return(result.Success ? result.Value : null);
        }
Exemplo n.º 2
0
        public void TestXmlGrammarRuleNameForConfigManagerConstructor()
        {
            IConfigurationManager configManager = GetConfigurationManager();
            XmlGrammar            grammar       = new XmlGrammar(configManager, unformattedFileName, GetType());

            Assert.AreEqual("overallCommand", grammar.RuleName);
        }
Exemplo n.º 3
0
        public void CreateGrammarFromListSuccess()
        {
            List <String> testListValues = new List <String>
            {
                "Test Item One",
                "Test Item Two",
                "Test Item Three",
            };
            XmlDocument doc = new XmlDocument();

            doc.Load(formattedFileName);
            XmlGrammar baseGrammar = new XmlGrammar(doc);

            XmlGrammar grammar = GrammarUtility.CreateGrammarFromList(formattedFileName, "testList", testListValues);

            Assert.AreEqual(5, grammar.Rules.Count());
            for (int i = 0; i < baseGrammar.Rules.Count() - 1; i++)
            {
                Assert.AreEqual(baseGrammar.Rules.ElementAt(i).InnerXml, grammar.Rules.ElementAt(i).InnerXml);
            }
            XmlElement elem = grammar.Rules.Last();

            Assert.AreEqual("testList", elem.Attributes["id"].Value);
            XmlElement oneOfElem = elem.FirstChild as XmlElement;

            Assert.AreEqual(3, oneOfElem.ChildNodes.Count);
            Assert.AreEqual(testListValues[0], oneOfElem.ChildNodes[0].FirstChild.Value.Trim());
            Assert.AreEqual(testListValues[1], oneOfElem.ChildNodes[1].FirstChild.Value.Trim());
            Assert.AreEqual(testListValues[2], oneOfElem.ChildNodes[2].FirstChild.Value.Trim());
        }
Exemplo n.º 4
0
 public override void Initialize(IConfigurationManager configManager)
 {
     base.Initialize(configManager);
     if (ConfigManager.FindAllComponentsOfType <ITVRemote>().Any())
     {
         XmlGrammar grammar = GrammarUtility.CreateGrammarFromList(ConfigManager.GetPathForFile("RemoteGrammar.grxml", GetType()), "ChannelName", ConfigManager.FindAllComponentsOfType <ITVRemote>().SelectMany(r => r.GetChannels()).ToList());
         Provider = new GrammarProvider(grammar);
     }
 }
Exemplo n.º 5
0
 public override void Initialize(IConfigurationManager configManager)
 {
     base.Initialize(configManager);
     if (ConfigManager.FindAllComponentsOfType <IPowerController>().Any())
     {
         IEnumerable <String> locations = ConfigManager.FindAllComponentsOfType <IPowerController>().Select(s => s.Name);
         XmlGrammar           grammar   = GrammarUtility.CreateGrammarFromList(ConfigManager.GetPathForFile("PowerGrammar.grxml", GetType()), "SwitchName", locations.ToList());
         Provider = new GrammarProvider(grammar);
     }
 }
Exemplo n.º 6
0
 public override void Initialize(IConfigurationManager configManager)
 {
     base.Initialize(configManager);
     if (IsValid)
     {
         List <String> podcastNames = Podcasts.Select(info => info.Name).ToList();
         XmlGrammar    grammar      = GrammarUtility.CreateGrammarFromList(ConfigManager.GetPathForFile("PodcastGrammar.grxml", GetType()), "PodcastName", podcastNames);
         Provider = new GrammarProvider(grammar);
     }
 }
Exemplo n.º 7
0
        public void TestXmlGrammarRuleNameForDocumentConstructor()
        {
            IConfigurationManager configManager  = GetConfigurationManager();
            XmlDocument           unformattedDoc = new XmlDocument();

            unformattedDoc.Load(unformattedFileName);
            XmlGrammar grammar = new XmlGrammar(unformattedDoc);

            Assert.AreEqual("overallCommand", grammar.RuleName);
        }
Exemplo n.º 8
0
        public void TestXmlGrammarFormatForConfigManagerNameConstructor()
        {
            IConfigurationManager configManager = GetConfigurationManager();
            XmlGrammar            grammar       = new XmlGrammar(configManager, "TestRuleName", unformattedFileName, GetType());

            XmlDocument formattedDoc = new XmlDocument();

            formattedDoc.Load(formattedFileName);
            Assert.AreEqual(formattedDoc.InnerXml, grammar.RootDocument.InnerXml);
        }
Exemplo n.º 9
0
        public void TestXmlGrammarFormatForDocumentNameConstructor()
        {
            XmlDocument unformattedDoc = new XmlDocument();

            unformattedDoc.Load(unformattedFileName);
            XmlGrammar grammar = new XmlGrammar("TestRule", unformattedDoc);

            XmlDocument formattedDoc = new XmlDocument();

            formattedDoc.Load(formattedFileName);
            Assert.AreEqual(formattedDoc.InnerXml, grammar.RootDocument.InnerXml);
        }
Exemplo n.º 10
0
        public override void Initialize(IConfigurationManager configManager)
        {
            base.Initialize(configManager);
            if (!Children.OfType <IOInterfaceReference>().Any())
            {
                foreach (IVolumeController controller in ConfigManager.FindAllComponentsOfType <IVolumeController>())
                {
                    AddChild(new IOInterfaceReference("", controller.Name, ConfigManager));
                }
            }
            IEnumerable <String> references = Children.OfType <IOInterfaceReference>().Select(s => s.Name);
            XmlGrammar           grammar    = GrammarUtility.CreateGrammarFromList(ConfigManager.GetPathForFile("VolumeGrammar.grxml", GetType()), "Source", references.ToList());

            Provider = new GrammarProvider(grammar, new XmlGrammar(ConfigManager, VolumeGrammarName, "AdjustmentGrammar.grxml", GetType()));
        }
Exemplo n.º 11
0
 public override void Initialize(IConfigurationManager configManager)
 {
     base.Initialize(configManager);
     if (ConfigManager.FindAllComponentsOfType <IBartenderController>().Any() &&
         AvailableDrinks.Any())
     {
         List <String> drinkNames = AvailableDrinks.Select(d => d.Name).ToList();
         XmlGrammar    grammar    = GrammarUtility.CreateGrammarFromList(ConfigManager.GetPathForFile("BartenderGrammar.grxml", GetType()), "DrinkName", drinkNames);
         Provider = new GrammarProvider(grammar, GrammarUtility.GetGenericTrueFalseGrammar(ConfirmationRuleName, CommandName, new List <String> {
             "o k"
         }, new List <String> {
             "cancel"
         }));
     }
 }
Exemplo n.º 12
0
        public void TestXmlGrammarRulesList()
        {
            IConfigurationManager configManager  = GetConfigurationManager();
            XmlDocument           unformattedDoc = new XmlDocument();

            unformattedDoc.Load(unformattedFileName);
            XmlGrammar grammar = new XmlGrammar(unformattedDoc);

            List <String> expectedRules = new List <string>
            {
                "overallCommand",
                "movieCommand",
                "MovieName",
                "TheaterName",
            };

            Assert.AreEqual(expectedRules.Count, grammar.Rules.Count());
            for (int i = 0; i < grammar.Rules.Count(); i++)
            {
                Assert.AreEqual("rule", grammar.Rules.ElementAt(i).LocalName);
                Assert.AreEqual(expectedRules[i], grammar.Rules.ElementAt(i).Attributes["id"].Value);
            }
        }
Exemplo n.º 13
0
        private RecognitionResult RunGrammarOnInput(String input, String grammarName, MockVoiceControl control, BaseSAMIApp app)
        {
            app.Initialize(GetConfigurationManager());
            foreach (IParseable child in app.Children)
            {
                child.Initialize(GetConfigurationManager());
            }

            // Create a SpeechRecognitionEngine object and add the grammars to it.
            RecognizerInfo          ri         = GetKinectRecognizer();
            SpeechRecognitionEngine recoEngine = new SpeechRecognitionEngine(ri.Id);
            XmlGrammar grammar = control.GrammarProvider.MainGrammar;

            if (grammarName != null)
            {
                grammar = control.GrammarProvider.ExtraGrammars.Single(g => g.RuleName.Equals(grammarName));
            }

            foreach (String fileName in _utilityFiles)
            {
                XmlDocument fileDoc = new XmlDocument();
                fileDoc.Load(fileName);
                foreach (XmlElement element in fileDoc.LastChild.ChildNodes)
                {
                    XmlNode copiedNode = grammar.RootDocument.ImportNode(element, true);
                    grammar.RootDocument.LastChild.AppendChild(copiedNode);
                }
            }

            grammar.RootDocument.Save("grammar.xml");
            recoEngine.LoadGrammar(new Grammar("grammar.xml"));

            // Simulate recognition and get result parameters
            RecognitionResult result = recoEngine.SimulateRecognize(input);

            return(result);
        }
Exemplo n.º 14
0
        public void TestAppGrammarDoesNotIncludeDuplicates()
        {
            IEnumerable <Showtime> _fakeShowtimes = new List <Showtime>
            {
                new Showtime("First Test Show", "First Test Theater", "9:45 PM"),
                new Showtime("First Test Show", "First Test Theater", "8:45 PM"),
                new Showtime("Third Test Show", "Second Test Theater", "10:45 PM"),
                new Showtime("Third Test Show", "Second Test Theater", "11:45 PM"),
                new Showtime("Third Test Show", "Second Test Theater", "7:45 PM"),
                new Showtime("Third Test Show", "Second Test Theater", "6:45 PM"),
            };

            IConfigurationManager configManager = GetConfigurationManager();
            Mock <IMovieSensor>   db            = new Mock <IMovieSensor>(MockBehavior.Strict);

            db.Setup(s => s.IsValid).Returns(true);
            db.Setup(s => s.GetMovieShowtimes(new SamiDateTime(DateTimeRange.AnyTime), null, null)).Returns(_fakeShowtimes);
            AddComponentToConfigurationManager(db.Object);

            MovieApp app = new MovieApp();

            app.Initialize(GetConfigurationManager());

            XmlGrammar grammar       = app.GetMainGrammar();
            XmlNode    movieNameRule = grammar.RootDocument.LastChild.SelectSingleNode("rule[@id='MovieName']");

            foreach (XmlElement elem in grammar.RootDocument.LastChild.ChildNodes.OfType <XmlElement>())
            {
                if (elem.HasAttribute("id") && elem.Attributes["id"].Value.Equals("MovieName"))
                {
                    Assert.AreEqual(2, elem.FirstChild.ChildNodes.Count);
                }
            }

            db.Verify(s => s.GetMovieShowtimes(new SamiDateTime(DateTimeRange.AnyTime), null, null), Times.Exactly(2));
        }