Example #1
0
        public void TestLongestWordStartingWintABC()
        {
            CounterEngine engine      = new CounterEngine(inputString);
            List <string> searchInput = new List <string>();

            searchInput.Add("b|B|o|O|r|R");

            var result = engine.Process(CounterRules.longest_word_starting_with_abc, searchInput);

            Assert.AreEqual(result, 5); //
        }
Example #2
0
        public void TestCountOfSequenceOfWordStartingWithNAndA()
        {
            CounterEngine engine      = new CounterEngine(inputString);
            List <string> searchInput = new List <string>();

            searchInput.Add("B");
            searchInput.Add("f");
            var result = engine.Process(CounterRules.count_of_sequence_of_words_starting_with_c_and_a, searchInput);

            Assert.AreEqual(result, 1); //
        }
Example #3
0
        public void TestAverageLengthOfWordStartingWith_N_returnsZero()
        {
            CounterEngine engine      = new CounterEngine(inputString);
            List <string> searchInput = new List <string>();

            searchInput.Add("x|X|T|M"); // char | donates the or condition it will look for work starts with t or T
            //testing the rule 1.
            var result = engine.Process(CounterRules.average_length_of_words_starting_with, searchInput);

            Assert.AreEqual(result, 0); //
        }
Example #4
0
        public void TestCountOfNInWordsStartsWithT_returnsZero()
        {
            CounterEngine engine      = new CounterEngine(inputString);
            List <string> searchInput = new List <string>();

            searchInput.Add("j");
            searchInput.Add("a");
            var result = engine.Process(CounterRules.count_of_n_in_words_starting_with_x, searchInput);

            Assert.AreEqual(result, 0); //
        }
Example #5
0
        public static void Start(string s)
        {
            CounterEngine engine     = new CounterEngine(s);
            Array         AllRules   = Enum.GetValues(enumType: typeof(CounterRules));
            RuleOutput    ouptutFile = new RuleOutput();

            // string[] Rules = AllRules.Split('|');

            Console.WriteLine("You can skip rule by entering -1 for input.");
            foreach (var rule in AllRules)
            {
                List <string> listOfInputs = new List <string>();
                System.Diagnostics.Debug.Print(rule.ToString());

                var operation   = (CounterRules)Enum.Parse(typeof(CounterRules), Convert.ToString(rule));
                var description = engine.GetRuleDescription(operation);
                Console.WriteLine(description);
                var pattern = @"{(.*?)}";
                var matches = Regex.Matches(description, pattern);
                foreach (var input in matches)
                {
                    string regExInput = CheckInput(Console.ReadLine());
                    if (regExInput.Equals(string.Empty))
                    {
                        break;
                    }
                    listOfInputs.Add(regExInput);
                }
                if (listOfInputs.Count > 0)
                {
                    var    outputResult = engine.Process(operation, listOfInputs);
                    string fileName     = System.Environment.CurrentDirectory.ToString();
                    fileName = fileName + "\\" + ouptutFile.GetOutputFileName(operation);
                    fileName = string.Format(fileName, listOfInputs.FirstOrDefault().Replace("|", ""), (listOfInputs.Count > 1)? listOfInputs.Skip(1).First().Replace("|", ""):"");

                    OutputWriter.WriteToFile(outputResult, fileName);
                }
            }
        }