Exemplo n.º 1
0
        private void PLtoPLDash1()
        {
            LinkedListNode <Parenthsis> hightest = highestPrioitySubOp();
            string subOperation = input.Substring(hightest.Value.Index + 1, hightest.Next.Value.Index - hightest.Value.Index - 1);

            string[] operands = subOperation.Split(new char[] { '^', '˅', '→', '↔' }, StringSplitOptions.RemoveEmptyEntries).ToArray();

            BasicOp basicOp;

            if (operands.Length == 1)
            {
                basicOp = new BasicOp("(" + subOperation + ")");
                opList.AddLast(basicOp);
                input = input.Replace("(" + subOperation + ")", basicOp.Label.ToString());
            }
            else if (operands.Length == 2)
            {
                string op = subOperation.Split(operands, StringSplitOptions.RemoveEmptyEntries).ToArray()[0].ToString();
                switch (op)
                {
                case "^":
                    basicOp = new BasicOp("¬(" + operands[0] + "→¬" + operands[1] + ")");
                    input   = input.Replace("(" + subOperation + ")", basicOp.Label.ToString());
                    opList.AddLast(basicOp);
                    break;

                case "˅":
                    basicOp = new BasicOp("(¬" + operands[0] + "→" + operands[1] + ")");
                    input   = input.Replace("(" + subOperation + ")", basicOp.Label.ToString());
                    opList.AddLast(basicOp);
                    break;

                case "↔":
                    basicOp = new BasicOp("¬((" + operands[0] + "→" + operands[1] + ")→¬(" + operands[1] + "→" + operands[0] + "))");
                    input   = input.Replace("(" + subOperation + ")", basicOp.Label.ToString());
                    opList.AddLast(basicOp);
                    break;

                default:

                    basicOp = new BasicOp("(" + subOperation + ")");
                    input   = input.Replace("(" + subOperation + ")", basicOp.Label.ToString());
                    opList.AddLast(basicOp);
                    break;
                }
                input = input.Replace("(" + subOperation + ")", subOperation);
            }
            else
            {
                refine(subOperation);
            }
        }
Exemplo n.º 2
0
 public void FirstTestCase()
 {
     Assert.Equal(11, BasicOp.Test('+', 4, 7));
 }
Exemplo n.º 3
0
 public void FourthTestCase()
 {
     Assert.Equal(7, BasicOp.Test('/', 49, 7));
 }
Exemplo n.º 4
0
 public void ThirdTestCase()
 {
     Assert.Equal(25, BasicOp.Test('*', 5, 5));
 }
Exemplo n.º 5
0
 public void SecondTestCase()
 {
     Assert.Equal(-3, BasicOp.Test('-', 15, 18));
 }