This commit is contained in:
1billy17 2025-03-28 16:18:32 +03:00
commit 6510da5cc0
338 changed files with 9898 additions and 0 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

13
.idea/.idea.RofloCalc/.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,13 @@
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/contentModel.xml
/projectSettingsUpdater.xml
/.idea.RofloCalc.iml
/modules.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AvaloniaProject">
<option name="projectPerEditor">
<map>
<entry key="RofloCalc/MainWindow.axaml" value="RofloCalc/RofloCalc.csproj" />
</map>
</option>
</component>
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings" defaultProject="true" />
</project>

View File

@ -0,0 +1,676 @@
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);;
}
}

View File

@ -0,0 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\RofloCalc\RofloCalc.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="11.2.5" />
<PackageReference Include="Avalonia.Diagnostics" Version="11.2.5" />
<PackageReference Include="Avalonia.Headless" Version="11.2.5" />
<PackageReference Include="Avalonia.ReactiveUI" Version="11.2.5" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
<PackageReference Include="NUnit" Version="4.3.2" />
<PackageReference Include="NUnit3TestAdapter" Version="5.0.0" />
</ItemGroup>
</Project>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
"configProperties": {
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

View File

@ -0,0 +1,635 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"RofloCalc/1.0.0": {
"dependencies": {
"Avalonia": "11.2.1",
"Avalonia.Desktop": "11.2.1",
"Avalonia.Diagnostics": "11.2.1",
"Avalonia.Fonts.Inter": "11.2.1",
"Avalonia.Themes.Fluent": "11.2.1"
},
"runtime": {
"RofloCalc.dll": {}
}
},
"Avalonia/11.2.1": {
"dependencies": {
"Avalonia.BuildServices": "0.0.29",
"Avalonia.Remote.Protocol": "11.2.1",
"MicroCom.Runtime": "0.11.0"
},
"runtime": {
"lib/net8.0/Avalonia.Base.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
},
"lib/net8.0/Avalonia.Controls.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
},
"lib/net8.0/Avalonia.DesignerSupport.dll": {
"assemblyVersion": "0.7.0.0",
"fileVersion": "0.7.0.0"
},
"lib/net8.0/Avalonia.Dialogs.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
},
"lib/net8.0/Avalonia.Markup.Xaml.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
},
"lib/net8.0/Avalonia.Markup.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
},
"lib/net8.0/Avalonia.Metal.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
},
"lib/net8.0/Avalonia.MicroCom.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
},
"lib/net8.0/Avalonia.OpenGL.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
},
"lib/net8.0/Avalonia.Vulkan.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
},
"lib/net8.0/Avalonia.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"Avalonia.Angle.Windows.Natives/2.1.22045.20230930": {
"runtimeTargets": {
"runtimes/win-arm64/native/av_libglesv2.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/av_libglesv2.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/av_libglesv2.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"Avalonia.BuildServices/0.0.29": {},
"Avalonia.Controls.ColorPicker/11.2.1": {
"dependencies": {
"Avalonia": "11.2.1",
"Avalonia.Remote.Protocol": "11.2.1"
},
"runtime": {
"lib/net8.0/Avalonia.Controls.ColorPicker.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"Avalonia.Controls.DataGrid/11.2.1": {
"dependencies": {
"Avalonia": "11.2.1",
"Avalonia.Remote.Protocol": "11.2.1"
},
"runtime": {
"lib/net8.0/Avalonia.Controls.DataGrid.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"Avalonia.Desktop/11.2.1": {
"dependencies": {
"Avalonia": "11.2.1",
"Avalonia.Native": "11.2.1",
"Avalonia.Skia": "11.2.1",
"Avalonia.Win32": "11.2.1",
"Avalonia.X11": "11.2.1"
},
"runtime": {
"lib/net8.0/Avalonia.Desktop.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"Avalonia.Diagnostics/11.2.1": {
"dependencies": {
"Avalonia": "11.2.1",
"Avalonia.Controls.ColorPicker": "11.2.1",
"Avalonia.Controls.DataGrid": "11.2.1",
"Avalonia.Themes.Simple": "11.2.1"
},
"runtime": {
"lib/net8.0/Avalonia.Diagnostics.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"Avalonia.Fonts.Inter/11.2.1": {
"dependencies": {
"Avalonia": "11.2.1"
},
"runtime": {
"lib/net8.0/Avalonia.Fonts.Inter.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"Avalonia.FreeDesktop/11.2.1": {
"dependencies": {
"Avalonia": "11.2.1",
"Tmds.DBus.Protocol": "0.20.0"
},
"runtime": {
"lib/net8.0/Avalonia.FreeDesktop.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"Avalonia.Native/11.2.1": {
"dependencies": {
"Avalonia": "11.2.1"
},
"runtime": {
"lib/net8.0/Avalonia.Native.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
},
"runtimeTargets": {
"runtimes/osx/native/libAvaloniaNative.dylib": {
"rid": "osx",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"Avalonia.Remote.Protocol/11.2.1": {
"runtime": {
"lib/net8.0/Avalonia.Remote.Protocol.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"Avalonia.Skia/11.2.1": {
"dependencies": {
"Avalonia": "11.2.1",
"HarfBuzzSharp": "7.3.0.2",
"HarfBuzzSharp.NativeAssets.Linux": "7.3.0.2",
"HarfBuzzSharp.NativeAssets.WebAssembly": "7.3.0.3-preview.2.2",
"SkiaSharp": "2.88.8",
"SkiaSharp.NativeAssets.Linux": "2.88.8",
"SkiaSharp.NativeAssets.WebAssembly": "2.88.8"
},
"runtime": {
"lib/net8.0/Avalonia.Skia.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"Avalonia.Themes.Fluent/11.2.1": {
"dependencies": {
"Avalonia": "11.2.1"
},
"runtime": {
"lib/net8.0/Avalonia.Themes.Fluent.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"Avalonia.Themes.Simple/11.2.1": {
"dependencies": {
"Avalonia": "11.2.1"
},
"runtime": {
"lib/net8.0/Avalonia.Themes.Simple.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"Avalonia.Win32/11.2.1": {
"dependencies": {
"Avalonia": "11.2.1",
"Avalonia.Angle.Windows.Natives": "2.1.22045.20230930"
},
"runtime": {
"lib/net8.0/Avalonia.Win32.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"Avalonia.X11/11.2.1": {
"dependencies": {
"Avalonia": "11.2.1",
"Avalonia.FreeDesktop": "11.2.1",
"Avalonia.Skia": "11.2.1"
},
"runtime": {
"lib/net8.0/Avalonia.X11.dll": {
"assemblyVersion": "11.2.1.0",
"fileVersion": "11.2.1.0"
}
}
},
"HarfBuzzSharp/7.3.0.2": {
"dependencies": {
"HarfBuzzSharp.NativeAssets.Win32": "7.3.0.2",
"HarfBuzzSharp.NativeAssets.macOS": "7.3.0.2"
},
"runtime": {
"lib/net6.0/HarfBuzzSharp.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "7.3.0.2"
}
}
},
"HarfBuzzSharp.NativeAssets.Linux/7.3.0.2": {
"dependencies": {
"HarfBuzzSharp": "7.3.0.2"
},
"runtimeTargets": {
"runtimes/linux-arm/native/libHarfBuzzSharp.so": {
"rid": "linux-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-arm64/native/libHarfBuzzSharp.so": {
"rid": "linux-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-x64/native/libHarfBuzzSharp.so": {
"rid": "linux-musl-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x64/native/libHarfBuzzSharp.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"HarfBuzzSharp.NativeAssets.macOS/7.3.0.2": {
"runtimeTargets": {
"runtimes/osx/native/libHarfBuzzSharp.dylib": {
"rid": "osx",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"HarfBuzzSharp.NativeAssets.WebAssembly/7.3.0.3-preview.2.2": {},
"HarfBuzzSharp.NativeAssets.Win32/7.3.0.2": {
"runtimeTargets": {
"runtimes/win-arm64/native/libHarfBuzzSharp.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/libHarfBuzzSharp.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/libHarfBuzzSharp.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"MicroCom.Runtime/0.11.0": {
"runtime": {
"lib/net5.0/MicroCom.Runtime.dll": {
"assemblyVersion": "0.11.0.0",
"fileVersion": "0.11.0.0"
}
}
},
"SkiaSharp/2.88.8": {
"dependencies": {
"SkiaSharp.NativeAssets.Win32": "2.88.8",
"SkiaSharp.NativeAssets.macOS": "2.88.8"
},
"runtime": {
"lib/net6.0/SkiaSharp.dll": {
"assemblyVersion": "2.88.0.0",
"fileVersion": "2.88.8.0"
}
}
},
"SkiaSharp.NativeAssets.Linux/2.88.8": {
"dependencies": {
"SkiaSharp": "2.88.8"
},
"runtimeTargets": {
"runtimes/linux-arm/native/libSkiaSharp.so": {
"rid": "linux-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-arm64/native/libSkiaSharp.so": {
"rid": "linux-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-x64/native/libSkiaSharp.so": {
"rid": "linux-musl-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x64/native/libSkiaSharp.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"SkiaSharp.NativeAssets.macOS/2.88.8": {
"runtimeTargets": {
"runtimes/osx/native/libSkiaSharp.dylib": {
"rid": "osx",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"SkiaSharp.NativeAssets.WebAssembly/2.88.8": {},
"SkiaSharp.NativeAssets.Win32/2.88.8": {
"runtimeTargets": {
"runtimes/win-arm64/native/libSkiaSharp.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/libSkiaSharp.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/libSkiaSharp.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"System.IO.Pipelines/8.0.0": {
"runtime": {
"lib/net8.0/System.IO.Pipelines.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"Tmds.DBus.Protocol/0.20.0": {
"dependencies": {
"System.IO.Pipelines": "8.0.0"
},
"runtime": {
"lib/net8.0/Tmds.DBus.Protocol.dll": {
"assemblyVersion": "0.20.0.0",
"fileVersion": "0.20.0.0"
}
}
}
}
},
"libraries": {
"RofloCalc/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Avalonia/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-AyYhIN2A7bRwxp6BFHrIbXAHUFPXegzSMYwDrUnw1BzZs9ctwYTiCPCM5wbE2PXsEBwFDVJ/a2YHTOp56fSYAw==",
"path": "avalonia/11.2.1",
"hashPath": "avalonia.11.2.1.nupkg.sha512"
},
"Avalonia.Angle.Windows.Natives/2.1.22045.20230930": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Bo3qOhKC1b84BIhiogndMdAzB3UrrESKK7hS769f5HWeoMw/pcd42US5KFYW2JJ4ZSTrXnP8mXwLTMzh+S+9Lg==",
"path": "avalonia.angle.windows.natives/2.1.22045.20230930",
"hashPath": "avalonia.angle.windows.natives.2.1.22045.20230930.nupkg.sha512"
},
"Avalonia.BuildServices/0.0.29": {
"type": "package",
"serviceable": true,
"sha512": "sha512-U4eJLQdoDNHXtEba7MZUCwrBErBTxFp6sUewXBOdAhU0Kwzwaa/EKFcYm8kpcysjzKtfB4S0S9n0uxKZFz/ikw==",
"path": "avalonia.buildservices/0.0.29",
"hashPath": "avalonia.buildservices.0.0.29.nupkg.sha512"
},
"Avalonia.Controls.ColorPicker/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-t8ViFwfIe6jCO5HvzPWOtwGNSMHYNc8XakWp76Rgy1MOiht8tHKry9cU7k40AHEYU6wVjiYBkl0c8zYZyyha1g==",
"path": "avalonia.controls.colorpicker/11.2.1",
"hashPath": "avalonia.controls.colorpicker.11.2.1.nupkg.sha512"
},
"Avalonia.Controls.DataGrid/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UaNQrY86GBqMZqZ/N/5/wLzr4Emh2N405VZI/IgH0I8BoMrjnosNr+++D7BOcahMNce0lUZLOsFyy+OY02PUAw==",
"path": "avalonia.controls.datagrid/11.2.1",
"hashPath": "avalonia.controls.datagrid.11.2.1.nupkg.sha512"
},
"Avalonia.Desktop/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-q6alzkTgFjukOrbiiFlh0mkhkxGRMRTMS8zdNEixIl9apPnD2ln9sjAC4NR2agNz5+HmZVfXYu6kYK12rMmKwA==",
"path": "avalonia.desktop/11.2.1",
"hashPath": "avalonia.desktop.11.2.1.nupkg.sha512"
},
"Avalonia.Diagnostics/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-axUWa4sZoe9HgUXPEDhbZXijL8ex+lwQGVwNQLmD299O7pCqKcYThjyG/eCETO/boqjKTt3H85LHEPx94BP9dg==",
"path": "avalonia.diagnostics/11.2.1",
"hashPath": "avalonia.diagnostics.11.2.1.nupkg.sha512"
},
"Avalonia.Fonts.Inter/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-egEFQWLHuSzyWKolPy9u4qPor270N2GL/4CI33eBxr09chrUVQsOlxQ6zeWPiBLzzgv/lCrZhOMCAIWsOz3tNg==",
"path": "avalonia.fonts.inter/11.2.1",
"hashPath": "avalonia.fonts.inter.11.2.1.nupkg.sha512"
},
"Avalonia.FreeDesktop/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ChKdPjQ2uBJUN0y+/RsdoETzXRn/q1eWFBDwprDy+Zi/AVkUfRk06hKbsb/U+Q3zO65CMEprRcMPbys0EkK2vg==",
"path": "avalonia.freedesktop/11.2.1",
"hashPath": "avalonia.freedesktop.11.2.1.nupkg.sha512"
},
"Avalonia.Native/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1cVasDUIkqfAYLkaLFDx+VDZymer2v643OYD6Jd6nzP20TNTqN2LfFOpxXCTYMrWc9Dk5AoVJJCrz3wRE5kooQ==",
"path": "avalonia.native/11.2.1",
"hashPath": "avalonia.native.11.2.1.nupkg.sha512"
},
"Avalonia.Remote.Protocol/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aqEialxjir7DO/dOFf7BGN/yQ4/adSC5UuVfqBr/RUHOENSH6CqoHj8kmtmJxnuz7ESQFSB2+h1kLVnk5csiDw==",
"path": "avalonia.remote.protocol/11.2.1",
"hashPath": "avalonia.remote.protocol.11.2.1.nupkg.sha512"
},
"Avalonia.Skia/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-FkqiXWT1hN0s5MIx5IKDGZaqewQENikQh6aBQyApiZVu5koa8H8RW1yfb2cFK3M4IVIyhqwl8ZirkXsS18lf/Q==",
"path": "avalonia.skia/11.2.1",
"hashPath": "avalonia.skia.11.2.1.nupkg.sha512"
},
"Avalonia.Themes.Fluent/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9YUzDmZO5oDppsoA3Igeu/v1cVi4xu8jdO6ZrBzXJXJ9mma/htK0Ub9+V1lRoCW/O70nQfBX+ZDpm0dca1PVgw==",
"path": "avalonia.themes.fluent/11.2.1",
"hashPath": "avalonia.themes.fluent.11.2.1.nupkg.sha512"
},
"Avalonia.Themes.Simple/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ToiYv8hhJ5gcEtD54VZv7NpBFiqGasj4bjFh/AtjXApiYOp8r3orFPX8Nsc3kHcUCvNNjbjAy9dmBG65nYePkw==",
"path": "avalonia.themes.simple/11.2.1",
"hashPath": "avalonia.themes.simple.11.2.1.nupkg.sha512"
},
"Avalonia.Win32/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7Gfw7S1PoINaCXaIV1rh7zo82IhsqhR7a0PAt281cBrfDkJiNU0DYgW2RZxKl3oVFxtfbxJZbdP7hSVmHvoDfw==",
"path": "avalonia.win32/11.2.1",
"hashPath": "avalonia.win32.11.2.1.nupkg.sha512"
},
"Avalonia.X11/11.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-h2aCpyLmxGkldPK7cbncEgyobrJ5En7gQtrwVARLmN32Rw6dHut3jyF3P8at2DmWxRuKwZVXgWBSSI62hINgrQ==",
"path": "avalonia.x11/11.2.1",
"hashPath": "avalonia.x11.11.2.1.nupkg.sha512"
},
"HarfBuzzSharp/7.3.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0tCd6HyCmNsX/DniCp2b00fo0xPbdNwKOs9BxxyT8oOOuMlWjcSFwzONKyeckCKVBFEsbSmsAHPDTqxoSDwZMg==",
"path": "harfbuzzsharp/7.3.0.2",
"hashPath": "harfbuzzsharp.7.3.0.2.nupkg.sha512"
},
"HarfBuzzSharp.NativeAssets.Linux/7.3.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aKa5J1RqjXKAtdcZJp5wjC78klfBIzJHM6CneN76lFmQ9LLRJA9Oa0TkIDaV8lVLDKMAy5fCKHXFlXUK1YfL/g==",
"path": "harfbuzzsharp.nativeassets.linux/7.3.0.2",
"hashPath": "harfbuzzsharp.nativeassets.linux.7.3.0.2.nupkg.sha512"
},
"HarfBuzzSharp.NativeAssets.macOS/7.3.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nycYH/WLJ6ogm+I+QSFCdPJsdxSb5GANWYbQyp1vsd/KjXN56RVUJWPhbgP2GKb/Y7mrsHM7EProqVXlO/EMsA==",
"path": "harfbuzzsharp.nativeassets.macos/7.3.0.2",
"hashPath": "harfbuzzsharp.nativeassets.macos.7.3.0.2.nupkg.sha512"
},
"HarfBuzzSharp.NativeAssets.WebAssembly/7.3.0.3-preview.2.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Dc+dolrhmkpqwT25NfNEEgceW0//KRR2WIOvxlyIIHIIMBCn0FfUeJX5RhFll8kyaZwF8tuKsxRJtQG/rzSBog==",
"path": "harfbuzzsharp.nativeassets.webassembly/7.3.0.3-preview.2.2",
"hashPath": "harfbuzzsharp.nativeassets.webassembly.7.3.0.3-preview.2.2.nupkg.sha512"
},
"HarfBuzzSharp.NativeAssets.Win32/7.3.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DpF9JBzwws2dupOLnjME65hxQWWbN/GD40AoTkwB4S05WANvxo3n81AnQJKxWDCnrWfWhLPB36OF27TvEqzb/A==",
"path": "harfbuzzsharp.nativeassets.win32/7.3.0.2",
"hashPath": "harfbuzzsharp.nativeassets.win32.7.3.0.2.nupkg.sha512"
},
"MicroCom.Runtime/0.11.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MEnrZ3UIiH40hjzMDsxrTyi8dtqB5ziv3iBeeU4bXsL/7NLSal9F1lZKpK+tfBRnUoDSdtcW3KufE4yhATOMCA==",
"path": "microcom.runtime/0.11.0",
"hashPath": "microcom.runtime.0.11.0.nupkg.sha512"
},
"SkiaSharp/2.88.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bRkp3uKp5ZI8gXYQT57uKwil1uobb2p8c69n7v5evlB/2JNcMAXVcw9DZAP5Ig3WSvgzGm2YSn27UVeOi05NlA==",
"path": "skiasharp/2.88.8",
"hashPath": "skiasharp.2.88.8.nupkg.sha512"
},
"SkiaSharp.NativeAssets.Linux/2.88.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0FO6YA7paNFBMJULvEyecPmCvL9/STvOAi5VOUw2srqJ7pNTbiiZkfl7sulAzcumbWgfzaVjRXYTgMj7SoUnWQ==",
"path": "skiasharp.nativeassets.linux/2.88.8",
"hashPath": "skiasharp.nativeassets.linux.2.88.8.nupkg.sha512"
},
"SkiaSharp.NativeAssets.macOS/2.88.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6Kn5TSkKlfyS6azWHF3Jk2sW5C4jCE5uSshM/5AbfFrR+5n6qM5XEnz9h4VaVl7LTxBvHvMkuPb/3bpbq0vxTw==",
"path": "skiasharp.nativeassets.macos/2.88.8",
"hashPath": "skiasharp.nativeassets.macos.2.88.8.nupkg.sha512"
},
"SkiaSharp.NativeAssets.WebAssembly/2.88.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-S3qRo8c+gVYOyfrdf6FYnjx/ft+gPkb4dNY2IPv5Oy5yNBhDhXhKqHFr9h4+ne6ZU+7D4dbuRQqsIqCo8u1/DA==",
"path": "skiasharp.nativeassets.webassembly/2.88.8",
"hashPath": "skiasharp.nativeassets.webassembly.2.88.8.nupkg.sha512"
},
"SkiaSharp.NativeAssets.Win32/2.88.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-O9QXoWEXA+6cweR4h3BOnwMz+pO9vL9mXdjLrpDd0w1QzCgWmLQBxa1VgySDITiH7nQndrDG1h6937zm9pLj1Q==",
"path": "skiasharp.nativeassets.win32/2.88.8",
"hashPath": "skiasharp.nativeassets.win32.2.88.8.nupkg.sha512"
},
"System.IO.Pipelines/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==",
"path": "system.io.pipelines/8.0.0",
"hashPath": "system.io.pipelines.8.0.0.nupkg.sha512"
},
"Tmds.DBus.Protocol/0.20.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2gkt2kuYPhDKd8gtl34jZSJOnn4nRJfFngCDcTZT/uySbK++ua0YQx2418l9Rn1Y4dE5XNq6zG9ZsE5ltLlNNw==",
"path": "tmds.dbus.protocol/0.20.0",
"hashPath": "tmds.dbus.protocol.0.20.0.nupkg.sha512"
}
}
}

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,13 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
"configProperties": {
"System.Runtime.InteropServices.BuiltInComInterop.IsSupported": true,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More