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); } }
public void FirstTestCase() { Assert.Equal(11, BasicOp.Test('+', 4, 7)); }
public void FourthTestCase() { Assert.Equal(7, BasicOp.Test('/', 49, 7)); }
public void ThirdTestCase() { Assert.Equal(25, BasicOp.Test('*', 5, 5)); }
public void SecondTestCase() { Assert.Equal(-3, BasicOp.Test('-', 15, 18)); }