private void ExecuteLastOperator(Operator newOperator) { decimal currentValue = Convert.ToDecimal(textBoxDisplay.Text); decimal newValue = currentValue; if (numberHitSinceLastOperator) { switch (lastOperator) { case Operator.Plus: newValue = valueSoFar + currentValue; break; case Operator.Minus: newValue = valueSoFar - currentValue; break; case Operator.Times: newValue = valueSoFar * currentValue; break; case Operator.Divide: if (currentValue == 0) newValue = 0; else newValue = valueSoFar / currentValue; break; case Operator.Equals: newValue = currentValue; break; } } valueSoFar = newValue; lastOperator = newOperator; numberHitSinceLastOperator = false; textBoxDisplay.Text = valueSoFar.ToString(); }
public void addTwoNumbersTogether() { Operator testOperatorClass = new Operator(); testOperatorClass.Combine("12"); testOperatorClass.setOperatorFlag("Add"); testOperatorClass.Combine("2"); testOperatorClass.resultCalculation(); Assert.AreEqual("14",testOperatorClass.TextBoxCalculatedResult); }
public void divideTwoNumbers() { Operator testOperatorClass = new Operator(); testOperatorClass.Combine("12"); testOperatorClass.setOperatorFlag("Divide"); testOperatorClass.Combine("2"); testOperatorClass.resultCalculation(); Assert.AreEqual("6", testOperatorClass.TextBoxCalculatedResult); }
public void cantSetOperatorPriortoUserInput() { Operator testOperatorClass = new Operator(); testOperatorClass.setOperatorFlag("Multiply"); testOperatorClass.Combine("3"); testOperatorClass.setOperatorFlag("Add"); testOperatorClass.Combine("3"); testOperatorClass.resultCalculation(); Assert.AreEqual("6", testOperatorClass.TextBoxCalculatedResult); }
public Calculator() { InitializeComponent(); _resetResult = true; _lhsNumber = 0; _currOperator = Operator.None; _memory = 0; mainPanel.CellBorderStyle = TableLayoutPanelCellBorderStyle.None; foreach (var button in basicOpsPanel.Controls.Cast<Control>().Concat(advancedOpsPanel.Controls.Cast<Control>()).Concat(memoryPanel.Controls.Cast<Control>()).Cast<Button>()) { button.FlatAppearance.BorderSize = 0; button.FlatStyle = FlatStyle.Flat; button.Margin = new Padding(0); } foreach(Button button in basicOpsPanel.Controls) { button.BackColor = Settings.Default.LightBackColor; button.ForeColor = Settings.Default.LightForeColor; } foreach(Button button in advancedOpsPanel.Controls) { button.BackColor = Settings.Default.DarkBackColor; button.ForeColor = Settings.Default.DarkForeColor; } foreach(Button button in memoryPanel.Controls) { button.BackColor = Settings.Default.DarkBackColor; button.ForeColor = Settings.Default.DarkForeColor; } mainPanel.BackColor = Settings.Default.DarkBackColor; resultTextBox.AutoSize = false; resultTextBox.BorderStyle = BorderStyle.None; resultTextBox.BackColor = Settings.Default.DarkBackColor; resultTextBox.ForeColor = Settings.Default.DarkForeColor; operationTextBox.AutoSize = false; operationTextBox.BorderStyle = BorderStyle.None; operationTextBox.BackColor = Settings.Default.DarkBackColor; operationTextBox.ForeColor = Settings.Default.DarkForeColor; OnResize(EventArgs.Empty); }
public void ShouldPerformSubsequentOperation() { Operator testOperatorClass = new Operator(); testOperatorClass.Combine("12"); testOperatorClass.setOperatorFlag("Add"); testOperatorClass.Combine("2"); testOperatorClass.resultCalculation(); testOperatorClass.setOperatorFlag("Multiply"); testOperatorClass.Combine("2"); testOperatorClass.resultCalculation(); Assert.AreEqual("28",testOperatorClass.TextBoxCalculatedResult); }
public void AddElementCommand_AddOperator_CallsCorrespondingMethod(string @operator, Operator argumentOperator) { // Arrange var firstOperand = "1"; var expectedResult = firstOperand + @operator; this.calculatorMock.Setup(m => m.AddOperator(It.IsAny <Operator>())).Returns(true); testee.AddElementCommand.Execute(firstOperand); // Act testee.AddElementCommand.Execute(@operator); // Assert calculatorMock.Verify(m => m.AddOperator(argumentOperator), Times.Once); Assert.AreEqual(testee.Result, expectedResult); }
public OperatorNode(Operator op) { this.op = op; }
public void WhenUsingResultValueShouldNotModifyUserInput() { Operator testOperatorClass = new Operator(); testOperatorClass.Combine("1"); testOperatorClass.setOperatorFlag("Add"); testOperatorClass.Combine("2"); testOperatorClass.resultCalculation(); testOperatorClass.Combine("3"); Assert.AreEqual("3", testOperatorClass.TextBoxUserInput); }
private string ConcatenateUsingObject(string firstString, string secondString) { Operator testObject = new Operator(); testObject.Combine(firstString); testObject.Combine(secondString); return testObject.TextBoxUserInput; }
public Tuple <bool, double> Rechnen(Operator newOperator) { var success = calculator.OperatorAuswerten(newOperator); return(new Tuple <bool, double>(success, calculator.Zwischenergebnis)); }
public void WhenStartingWithResultShouldPerformNewOperation() { Operator testOperatorClass = new Operator(); testOperatorClass.Combine("3"); testOperatorClass.setOperatorFlag("Add"); testOperatorClass.Combine("2"); testOperatorClass.resultCalculation(); testOperatorClass.Combine("3"); testOperatorClass.setOperatorFlag("Add"); testOperatorClass.Combine("2"); testOperatorClass.resultCalculation(); Assert.AreEqual("5",testOperatorClass.TextBoxCalculatedResult); }
private void Clear() { _lhsNumber = 0; _currOperator = Operator.None; resultTextBox.Text = "0"; operationTextBox.Clear(); }
private void AppendOperator(char op) { double res; if(!_resetResult) Calculate(); if (!double.TryParse(resultTextBox.Text, out res)) return; _currOperator = op.ToOperator(); _lhsNumber = res; operationTextBox.Text = _lhsNumber + " " + op.ToString(); _resetResult = true; }
private void ExecuteNewOperator(Operator newOperator) { switch (newOperator) { case Operator.MSign: if (textBoxDisplay.Text == "") { // Do nothing } else { valueSoFar = Convert.ToDecimal(textBoxDisplay.Text); valueSoFar = valueSoFar * -1; textBoxDisplay.Text = valueSoFar.ToString(); } break; case Operator.Back: string value = textBoxDisplay.Text; if (value.Length > 0) { value = value.Remove(value.Length - 1); textBoxDisplay.Text = value; } else { textBoxDisplay.Text = value; } break; case Operator.Clear: textBoxDisplay.Text = ""; lastOperator = Operator.None; numberHitSinceLastOperator = false; break; case Operator.MAdd: if (textBoxDisplay.Text == "") { // Do nothing } else { memory = memory + Convert.ToDecimal(textBoxDisplay.Text); } break; case Operator.MR: textBoxDisplay.Text = memory.ToString(); break; case Operator.MC: memory = 0; break; case Operator.MS: if (textBoxDisplay.Text == "") { // Do nothing } else { memory = Convert.ToDecimal(textBoxDisplay.Text); } break; case Operator.MSub: if (textBoxDisplay.Text == "") { // Do nothing } else { memory = memory - Convert.ToDecimal(textBoxDisplay.Text); } break; case Operator.Percent: if (textBoxDisplay.Text == "") { // Do nothing } else { valueSoFar = Convert.ToDecimal(textBoxDisplay.Text); valueSoFar = valueSoFar / 100; textBoxDisplay.Text = valueSoFar.ToString(); } break; case Operator.Reciprocal: if (textBoxDisplay.Text == "") { // Do nothing } else { valueSoFar = Convert.ToDecimal(textBoxDisplay.Text); if (valueSoFar == 0) valueSoFar = 0; valueSoFar = 1 / valueSoFar; textBoxDisplay.Text = valueSoFar.ToString(); } break; case Operator.Root: if (textBoxDisplay.Text == "") { // Do nothing } else { valueSoFar = (decimal)Math.Sqrt((double)Convert.ToDecimal(textBoxDisplay.Text)); textBoxDisplay.Text = valueSoFar.ToString(); } break; } }
private void PushOperator(Operator cmdOp) { if (operatorStack.Count == 0 || cmdOp.Priority > operatorStack.Peek().Priority) operatorStack.Push(cmdOp); else if (cmdOp.Priority == operatorStack.Peek().Priority && cmdOp.Associativity == Associativity.Right) operatorStack.Push(cmdOp); else { while (operatorStack.Count > 0 && cmdOp.Priority <= operatorStack.Peek().Priority) tokens.Add(operatorStack.Pop()); operatorStack.Push(cmdOp); } }
public CalculatorMain() { InitializeComponent(); _newOperator = new Operator(); }
private void Calculate() { double rhs; double res = 0; if (!double.TryParse(resultTextBox.Text, out rhs)) return; switch (_currOperator) { case Operator.None: return; case Operator.Plus: res = _lhsNumber + rhs; break; case Operator.Minus: res = _lhsNumber - rhs; break; case Operator.Multiply: res = _lhsNumber * rhs; break; case Operator.Divide: if (Math.Abs(rhs) < 0.0000001) { MessageBox.Show(Resources.DivideByZeroText); break; } res = _lhsNumber / rhs; break; default: throw new ArgumentOutOfRangeException(); } operationTextBox.Clear(); _lhsNumber = 0; _currOperator = Operator.None; resultTextBox.Text = res.ToString(CultureInfo.CurrentCulture); }
public void SubtractTwoNumbers() { Operator testOperatorClass = new Operator(); testOperatorClass.Combine("12"); testOperatorClass.setOperatorFlag("Subtract"); testOperatorClass.Combine("2"); testOperatorClass.resultCalculation(); Assert.AreEqual("10", testOperatorClass.TextBoxCalculatedResult); }
public void WhenPressingBackspaceButtonRemovesText() { Operator testOperatorClass = new Operator(); testOperatorClass.Combine("154"); testOperatorClass.Remove(); Assert.AreEqual("15",testOperatorClass.TextBoxUserInput); }
public void AddOperator(Operator Operator) { Elements.Add(Operator); }