RofloCalc/RofloCalc.Test/MainWindowTests.cs
2025-03-28 16:18:32 +03:00

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);;
}
}