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.
130 lines
3.6 KiB
130 lines
3.6 KiB
// Copyright (c) Six Labors and contributors.
|
|
// Licensed under the Apache License, Version 2.0.
|
|
|
|
using System;
|
|
|
|
using Xunit;
|
|
// ReSharper disable InconsistentNaming
|
|
|
|
namespace SixLabors.ImageSharp.Tests.Helpers
|
|
{
|
|
public class TolerantMathTests
|
|
{
|
|
private readonly TolerantMath tolerantMath = new TolerantMath(0.1);
|
|
|
|
[Theory]
|
|
[InlineData(0)]
|
|
[InlineData(0.01)]
|
|
[InlineData(-0.05)]
|
|
public void IsZero_WhenTrue(double a)
|
|
{
|
|
Assert.True(this.tolerantMath.IsZero(a));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(0.11)]
|
|
[InlineData(-0.101)]
|
|
[InlineData(42)]
|
|
public void IsZero_WhenFalse(double a)
|
|
{
|
|
Assert.False(this.tolerantMath.IsZero(a));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(0.11)]
|
|
[InlineData(100)]
|
|
public void IsPositive_WhenTrue(double a)
|
|
{
|
|
Assert.True(this.tolerantMath.IsPositive(a));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(0.09)]
|
|
[InlineData(-0.1)]
|
|
[InlineData(-1000)]
|
|
public void IsPositive_WhenFalse(double a)
|
|
{
|
|
Assert.False(this.tolerantMath.IsPositive(a));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(-0.11)]
|
|
[InlineData(-100)]
|
|
public void IsNegative_WhenTrue(double a)
|
|
{
|
|
Assert.True(this.tolerantMath.IsNegative(a));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(-0.09)]
|
|
[InlineData(0.1)]
|
|
[InlineData(1000)]
|
|
public void IsNegative_WhenFalse(double a)
|
|
{
|
|
Assert.False(this.tolerantMath.IsNegative(a));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(4.2, 4.2)]
|
|
[InlineData(4.2, 4.25)]
|
|
[InlineData(-Math.PI, -Math.PI + 0.05)]
|
|
[InlineData(999999.2, 999999.25)]
|
|
public void AreEqual_WhenTrue(double a, double b)
|
|
{
|
|
Assert.True(this.tolerantMath.AreEqual(a, b));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(1, 2)]
|
|
[InlineData(-1000000, -1000000.2)]
|
|
public void AreEqual_WhenFalse(double a, double b)
|
|
{
|
|
Assert.False(this.tolerantMath.AreEqual(a, b));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(2, 1.8)]
|
|
[InlineData(-20, -20.2)]
|
|
[InlineData(0.1, -0.1)]
|
|
[InlineData(100, 10)]
|
|
public void IsGreater_IsLess_WhenTrue(double a, double b)
|
|
{
|
|
Assert.True(this.tolerantMath.IsGreater(a, b));
|
|
Assert.True(this.tolerantMath.IsLess(b, a));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(2, 1.95)]
|
|
[InlineData(-20, -20.02)]
|
|
[InlineData(0.01, -0.01)]
|
|
[InlineData(999999, 999999.09)]
|
|
public void IsGreater_IsLess_WhenFalse(double a, double b)
|
|
{
|
|
Assert.False(this.tolerantMath.IsGreater(a, b));
|
|
Assert.False(this.tolerantMath.IsLess(b, a));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(3, 2)]
|
|
[InlineData(3, 2.99)]
|
|
[InlineData(2.99, 3)]
|
|
[InlineData(-5, -6)]
|
|
[InlineData(-5, -5.05)]
|
|
[InlineData(-5.05, -5)]
|
|
public void IsGreaterOrEqual_IsLessOrEqual_WhenTrue(double a, double b)
|
|
{
|
|
Assert.True(this.tolerantMath.IsGreaterOrEqual(a, b));
|
|
Assert.True(this.tolerantMath.IsLessOrEqual(b, a));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(2, 3)]
|
|
[InlineData(2.89, 3)]
|
|
[InlineData(-3, -2.89)]
|
|
public void IsGreaterOrEqual_IsLessOrEqual_WhenFalse(double a, double b)
|
|
{
|
|
Assert.False(this.tolerantMath.IsGreaterOrEqual(a, b));
|
|
Assert.False(this.tolerantMath.IsLessOrEqual(b, a));
|
|
}
|
|
}
|
|
}
|