676 lines
26 KiB
C#
676 lines
26 KiB
C#
using Avalonia;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Headless;
|
|
using NUnit.Framework;
|
|
using NUnit.Framework.Legacy;
|
|
|
|
namespace RofloCalc.Test;
|
|
|
|
[TestFixture]
|
|
public class CalculatorTests
|
|
{
|
|
private MainWindow _mainWindow;
|
|
|
|
[OneTimeSetUp]
|
|
public void GlobalSetup()
|
|
{
|
|
AppBuilder.Configure<App>()
|
|
.UseHeadless(new AvaloniaHeadlessPlatformOptions())
|
|
.SetupWithoutStarting();
|
|
}
|
|
|
|
[SetUp]
|
|
public void Setup()
|
|
{
|
|
_mainWindow = new MainWindow();
|
|
}
|
|
|
|
|
|
// +
|
|
[Test]
|
|
public void AddTwoNumbers_ShouldReturnCorrectSum_WhenBothNumbersArePositive()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 3 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "+" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("7", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void AddTwoNumbers_ShouldReturnCorrectSum_WhenFirstNumberIsNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -3 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "+" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void AddTwoNumbers_ShouldReturnCorrectSum_WhenSecondNumberIsNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 3 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "+" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -4 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("-1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void AddTwoNumbers_ShouldReturnCorrectSum_WhenBothNumbersAreNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -3 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "+" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -4 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("-7", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void AddTwoNumbers_ShouldReturnCorrectSum_WhenOneNumberIsZero()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "+" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("4", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void AddTwoNumbers_ShouldReturnCorrectSum_WhenBothNumbersAreZeros()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "+" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("0", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
|
|
//-
|
|
[Test]
|
|
public void SubtractTwoNumbers_ShouldReturnCorrectDifference_WhenBothNumbersArePositive()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "-" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("2", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void SubtractTwoNumbers_ShouldReturnCorrectDifference_WhenFirstNumberIsNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -4 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "-" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("-6", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void SubtractTwoNumbers_ShouldReturnCorrectDifference_WhenSecondNumberIsNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "-" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("6", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void SubtractTwoNumbers_ShouldReturnCorrectDifference_WhenBothNumbersAreNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -4 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "-" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("-2", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void SubtractTwoNumbers_ShouldReturnCorrectDifference_WhenOneNumberIsZero()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "-" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("2", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void SubtractTwoNumbers_ShouldReturnZero_WhenBothNumbersAreEqual()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "-" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("0", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
|
|
// *
|
|
[Test]
|
|
public void MultiplyTwoNumbers_ShouldReturnCorrectProduct_WhenBothNumbersArePositive()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "*" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("4", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void MultiplyTwoNumbers_ShouldReturnCorrectProduct_WhenFirstNumberIsNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -2 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "*" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("-4", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void MultiplyTwoNumbers_ShouldReturnCorrectProduct_WhenSecondNumberIsNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "*" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("-4", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void MultiplyTwoNumbers_ShouldReturnCorrectProduct_WhenBothNumbersAreNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -2 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "*" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("4", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void MultiplyTwoNumbers_ShouldReturnZero_WhenOneNumberIsZero()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "*" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("0", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void MultiplyTwoNumbers_ShouldReturnZero_WhenBothNumbersAreZero()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "*" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("0", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void MultiplyTwoNumbers_ShouldReturnSameNumber_WhenMultiplyingByOne()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 8 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "*" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 1 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("8", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
|
|
// "/"
|
|
[Test]
|
|
public void DivideTwoNumbers_ShouldReturnCorrectQuotient_WhenBothNumbersArePositive()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("2", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void DivideTwoNumbers_ShouldReturnCorrectQuotient_WhenFirstNumberIsNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -4 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("-2", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void DivideTwoNumbers_ShouldReturnCorrectQuotient_WhenSecondNumberIsNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("-2", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void DivideTwoNumbers_ShouldReturnCorrectQuotient_WhenBothNumbersAreNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -4 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("2", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void DivideTwoNumbers_ShouldReturnOne_WhenNumberIsDividedByItself()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void DivideTwoNumbers_ShouldReturnZero_WhenZeroIsDividedByNonZeroNumber()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("0", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void DivideTwoNumbers_ShouldThrowException_WhenDividingByZero()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = "8" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "/" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = "0" }, null);
|
|
|
|
var exception = Assert.Throws<DivideByZeroException>(() =>
|
|
{
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
});
|
|
|
|
Assert.That(exception.Message, Is.EqualTo("Нельзя делить на ноль!"));
|
|
}
|
|
|
|
|
|
// ^
|
|
[Test]
|
|
public void Power_ShouldReturnCorrectResult_WhenBothNumbersArePositive()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "^" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("4", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Power_ShouldReturnOne_WhenExponentIsZero()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "^" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Power_ShouldReturnZero_WhenBaseIsZeroAndExponentIsPositive()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "^" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("0", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Power_ShouldReturnOne_WhenBaseIsOneRegardlessOfExponent()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 1 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "^" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 3 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Power_ShouldReturnBase_WhenExponentIsOne()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "^" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 1 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("4", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Power_ShouldReturnNegativeResult_WhenBaseIsNegativeAndExponentIsOdd()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -2 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "^" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 3 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("-8", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Power_ShouldReturnFraction_WhenExponentIsNegative()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "^" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -3 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("0,125", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Power_ShouldReturnCorrectResult_WhenExponentIsFractional()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0.5 }, null);
|
|
_mainWindow.OnOperationButtonClick(new Button { Content = "^" }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("0,25", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
|
|
// sin
|
|
[Test]
|
|
public void Sin_ShouldReturnCorrectResult_WhenInputIsPositiveAngle()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 90 }, null);
|
|
_mainWindow.OnSinButtonClick(new Button(), null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Sin_ShouldReturnCorrectResult_WhenInputIsNegativeAngle()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -90 }, null);
|
|
_mainWindow.OnSinButtonClick(new Button(), null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("-1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Sin_ShouldReturnZero_WhenInputIsZero()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
_mainWindow.OnSinButtonClick(new Button(), null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("0", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
|
|
// cos
|
|
[Test]
|
|
public void Cos_ShouldReturnCorrectResult_WhenInputIsPositiveAngle()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 360 }, null);
|
|
_mainWindow.OnCosButtonClick(new Button(), null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Cos_ShouldReturnCorrectResult_WhenInputIsNegativeAngle()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -360 }, null);
|
|
_mainWindow.OnCosButtonClick(new Button(), null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
|
|
// tg
|
|
[Test]
|
|
public void Tg_ShouldReturnCorrectResult_WhenInputIsPositiveAngle()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 45 }, null);
|
|
_mainWindow.OnTgButtonClick(new Button(), null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Tg_ShouldReturnCorrectResult_WhenInputIsNegativeAngle()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -45 }, null);
|
|
_mainWindow.OnTgButtonClick(new Button(), null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("-1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Tg_ShouldReturnCorrectResult_WhenInputIsZero()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
_mainWindow.OnTgButtonClick(new Button(), null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("0", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
|
|
// ctg
|
|
[Test]
|
|
public void Ctg_ShouldReturnCorrectResult_WhenInputIsPositiveAngle()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 45 }, null);
|
|
_mainWindow.OnCtgButtonClick(new Button(), null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Ctg_ShouldReturnCorrectResult_WhenInputIsNegativeAngle()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = -45 }, null);
|
|
_mainWindow.OnCtgButtonClick(new Button(), null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("1", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
[Test]
|
|
public void Ctg_ShouldReturnCorrectResult_WhenInputIsZero()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
_mainWindow.OnCtgButtonClick(new Button(), null);
|
|
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
_mainWindow.OnEqualButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("\u221e", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
|
|
// Buttons
|
|
[Test]
|
|
public void Buttons_ShouldReturnCorrectResult_WhenInputIsZero()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 1 }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 3 }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 4 }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 5 }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 6 }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 7 }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 8 }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 9 }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 0 }, null);
|
|
|
|
ClassicAssert.AreEqual("1234567890", _mainWindow.DisplayText.Text);
|
|
}
|
|
|
|
|
|
// AC
|
|
[Test]
|
|
public void ClearButton_ShouldClearDisplayText_ClearButton()
|
|
{
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
_mainWindow.OnNumberButtonClick(new Button { Content = 2 }, null);
|
|
|
|
ClassicAssert.AreEqual("22", _mainWindow.DisplayText.Text);
|
|
|
|
_mainWindow.OnClearButtonClick(new Button(), null);
|
|
|
|
ClassicAssert.AreEqual("0", _mainWindow.DisplayText.Text);;
|
|
}
|
|
} |