首页 > 代码库 > 四则运算-词频统计

四则运算-词频统计

本实验用了vs2015自带的cppunit。


[TestMethod()] public void IsNumbericTest() { string input; bool expected; bool actual; //test1 input = "sd13d"; expected = false; actual = Program.IsNumberic(input); Assert.AreEqual(expected, actual); //test2 input = "123.456"; expected = true; actual = Program.IsNumberic(input); Assert.AreEqual(expected, actual); }

该段代码用来测试字符串是否为数字,用bool类型来表示,是数字返回1,不是返回0.

[TestMethod()]        public void isOperateorsTest()        {            string input;            bool expected;            bool actual;            //test1            input = "2";            expected = false;            actual = Program.isOperateors(input);            Assert.AreEqual(expected, actual);            //test2            input = "+";            expected = true;            actual = Program.isOperateors(input);            Assert.AreEqual(expected, actual);        }

 该段代码为判断是否为运算符,给出两个测试输入,一个是,一个不是,用人工预测的expected和事实输出的actual进行比较。

public static int[,] m_priorityTable = new int[,]        {          /*行为入栈运算符,列为栈顶运算符,2表示等于号,1表示大于号,           0表示小于号,-1表示错误的匹配*/          //////* ‘+‘,‘-‘,‘*‘,‘/‘,‘(‘,‘)‘,‘#‘*/          /*‘+‘*/{ 1,  1,  0,  0,  0,  1,  1},          /*‘-‘*/{ 1,  1,  0,  0,  0,  1,  1},          /*‘*‘*/{ 1,  1,  1,  1,  0,  1,  1},          /*‘/‘*/{ 1,  1,  1,  1,  0,  1,  1},          /*‘(‘*/{ 0,  0,  0,  0,  0,  2, -1},          /*‘)‘*/{ 0,  0,  0,  0, -1,  1,  1},          /*‘#‘*/{ 0,  0,  0,  0,  0, -1,  2},        };

 这个是从网上下载的符号优先级表,把它存入二维数组中来实现,行列来比较。

[TestMethod()]        public void IsPriorityTest()        {            int input1;            int input2;            int expected;            int actual;            //test1            input1 = 3;            input2 = 2;            expected = 1;            actual = Program.IsPriority(input1, input2);            Assert.AreEqual(expected, actual);        }

 测试符号优先级。

[TestMethod()]        public void IsPositiveIntTest()        {            string input;            bool expected;            bool actual;            //test1            input = "-1";            expected = false;            actual = Program.IsPositiveInt(input);            Assert.AreEqual(expected, actual);            //test1            input = "3";            expected = true;            actual = Program.IsPositiveInt(input);            Assert.AreEqual(expected, actual);        }

 测试一个数是否是正负数。

public void SplitExpressTest()        {            string input;            Queue<string> expected;            Queue<string> actual;            //test            input = "(0/2)+4+4";            expected = new Queue<string>();            expected.Enqueue("(");            expected.Enqueue("0");            expected.Enqueue("/");            expected.Enqueue("2");            expected.Enqueue(")");            expected.Enqueue("+");            expected.Enqueue("4");            expected.Enqueue("+");            expected.Enqueue("4");            expected.Enqueue("#");            actual = Program.SplitExpress(input);            CollectionAssert.AreEqual(expected, actual);        }

 将表达式分割成一个一个的字符存入队列。

[TestMethod()]        public void InorderToPostorderTest()        {            Queue<string> input = new Queue<string>();            List<string> expected;            List<string> actual;            //test            input.Enqueue("0");            input.Enqueue("-");            input.Enqueue("(");            input.Enqueue("7");            input.Enqueue("/");            input.Enqueue("2");            input.Enqueue(")");            input.Enqueue("+");            input.Enqueue("4");            input.Enqueue("#");            expected = new List<string>() { "0", "7", "2", "/", "-", "4", "+" };            actual = Program.InorderToPostorder(input);            CollectionAssert.AreEqual(expected, actual);        }

 测试由中缀表达式转换为后缀表达式是否正确。

[TestMethod()]        public void IsResultTest()        {            List<string> input;            double expected;            double actual;            //test            input = new List<string>() { "5", "2", "/", "3", "*", "8", "-" };            expected = -0.5;            Program.IsResult(input, out actual);            Assert.AreEqual(expected, actual);        }

 测试最后表达式的值是否正确。

预测结果:

技术分享

结对照片:

技术分享

感悟:

这个过程以李俞寰同学为主导,我在旁边学习。

四则运算-词频统计