mirror of https://github.com/SixLabors/ImageSharp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.4 KiB
36 lines
1.4 KiB
namespace ImageProcessor.UnitTests.Imaging.Helpers
|
|
{
|
|
using System.Drawing;
|
|
using FluentAssertions;
|
|
using ImageProcessor.Imaging.Helpers;
|
|
using NUnit.Framework;
|
|
|
|
public class ImageMathsUnitTests
|
|
{
|
|
[Test]
|
|
[TestCase(100, 100, 45, 141, 141)]
|
|
[TestCase(100, 100, 30, 137, 137)]
|
|
[TestCase(100, 200, 50, 217, 205)]
|
|
public void NewSizeAfterRotationIsCalculated(int width, int height, float angle, int expectedWidth, int expectedHeight)
|
|
{
|
|
Size result = ImageMaths.GetBoundingRotatedRectangle(width, height, angle);
|
|
|
|
result.Width.Should().Be(expectedWidth, "because the rotated width should have been calculated");
|
|
result.Height.Should().Be(expectedHeight, "because the rotated height should have been calculated");
|
|
}
|
|
|
|
[Test]
|
|
[TestCase(100, 100, 45, 1.41f)]
|
|
[TestCase(100, 100, 15, 1.22f)]
|
|
[TestCase(100, 200, 45, 2.12f)]
|
|
[TestCase(200, 100, 45, 2.12f)]
|
|
[TestCase(600, 450, 20, 1.39f)]
|
|
[TestCase(600, 450, 45, 1.64f)]
|
|
public void RotationZoomIsCalculated(int imageWidth, int imageHeight, float angle, float expected)
|
|
{
|
|
float result = ImageMaths.ZoomAfterRotation(imageWidth, imageHeight, angle);
|
|
|
|
result.Should().BeApproximately(expected, 0.01f, "because the zoom level after rotation should have been calculated");
|
|
}
|
|
}
|
|
}
|