Beispiel #1
0
        public Program.Result Process(string expression, Program.Options options)
        {
            var result = new Program.Result();

            try
            {
                Check(expression, options);
                Apply(options);
                double answer = Calculate(expression);
                result.Output     = numberFormatter.Format(answer);
                result.ReturnCode = Program.ErrorCode.OK;
            }
            catch (BadCommandLineArguments e)
            {
                result.Output     = $"Bad arguments: {e.Message}";
                result.ReturnCode = Program.ErrorCode.BadCommandLineArguments;
            }
            catch (InvalidMathExpression e)
            {
                result.Output     = $"Error: {e.Message}";
                result.ReturnCode = Program.ErrorCode.InvalidExpression;
            }
            catch (Exception e)
            {
                result.Output     = $"Unexpected error:\n{e}";
                result.ReturnCode = Program.ErrorCode.UnexpectedError;
            }

            return(result);
        }
Beispiel #2
0
 protected string ConvertToProgramResult(int value)
 {
     if (Enum.IsDefined(typeof(ArasDevTool.Program.Result), value))
     {
         Program.Result result = (Program.Result)value;
         return(result.ToString());
     }
     else
     {
         return(value.ToString());
     }
 }
Beispiel #3
0
        public void MainTest04()
        {
            string test;

            Program.Result trueres = new Program.Result();
            string         reason;

            test = "abcd123";
            trueres.charactersnumber = 7;
            trueres.wordsnumber      = 1;
            trueres.linesnumber      = 1;
            reason = "测试用例4";
            UnitTest(test, trueres, reason);
        }
Beispiel #4
0
        public void MainTest03()
        {
            string test;

            Program.Result trueres = new Program.Result();
            string         reason;

            test = "abcd\n\nabcd";
            trueres.charactersnumber = 8;
            trueres.wordsnumber      = 2;
            trueres.linesnumber      = 2;
            reason = "测试用例3";
            UnitTest(test, trueres, reason);
        }
Beispiel #5
0
        public void MainTest02()
        {
            string test;

            Program.Result trueres = new Program.Result();
            string         reason;

            test = "abcd abcd@abcd";
            trueres.charactersnumber = 14;
            trueres.wordsnumber      = 3;
            trueres.linesnumber      = 1;
            reason = "测试用例2";
            UnitTest(test, trueres, reason);
        }
Beispiel #6
0
        public void UnitTest(string test, Program.Result trueres, string reason)
        {
            FileStream   fs        = null;
            StreamWriter sw        = null;
            bool         result    = false;
            string       pathinput = "F:\\Demo.txt";

            Program.Result testres = new Program.Result();
            result = false;
            fs     = new FileStream(pathinput, FileMode.Create);
            sw     = new StreamWriter(fs);
            sw.WriteLine(test);
            sw.Close();
            fs.Close();
            testres = Program.Maintest();
            result  =
                (testres.charactersnumber == trueres.charactersnumber) &&
                (testres.wordsnumber == trueres.wordsnumber) &&
                (testres.linesnumber == trueres.linesnumber);
            Assert.AreEqual(true, result, reason);
        }