/// ------------------------------------------------------------------------------------ public void FinalizeParse(string pattern, PhoneticParser phoneticParser) { // At this point we're assuming the pattern has already been checked to make // sure the *, +, and # are not misplaced or coexistent with each other. IsZeroOrMore = (pattern == "*"); IsOneOrMore = pattern.Contains('+'); IsInitialWordBoundary = pattern.StartsWith("#"); IsFinalWordBoundary = pattern.EndsWith("#"); if (_runOfSymbols != string.Empty) { _groups.Add(_runOfSymbols); } _groupsLinkedList = new LinkedList <PhoneGroup>(); for (int i = 0; i < _groups.Count; i++) { if (!(_groups[i] is string)) { _groupsLinkedList.AddLast(new PhoneGroup(_groups[i] as IEnumerable <string>)); } else { var run = (string)_groups[i]; _groups.RemoveAt(i--); foreach (var phone in phoneticParser.Parse(run, true, false)) { _groupsLinkedList.AddLast(new PhoneGroup(new List <string> { phone })); } } } _groups = null; }
private void TestSentences() { //Goal: Test Sentence conversion Assert.Equal("আমি বাংলায় গান গাই", parser.Parse("ami banglay gan gai")); Assert.Equal("আমাদের ভালোবাসা হয়ে গেল ঘাস, খেয়ে গেল গরু আর দিয়ে গেল বাঁশ", parser.Parse("amader valObasa hoye gel ghas, kheye gel goru ar diye gelo ba^sh")); }