Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions TUnit.Assertions.Tests/Old/DecimalEqualsToAssertionTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,19 @@ public async Task Decimal_EqualsTo_Failure()
[Test]
public async Task Decimal_EqualsTo__With_Tolerance_Success()
{
var double1 = 1.0001d;
var double2 = 1.0002d;
await TUnitAssert.That(double1).IsEqualTo(double2).Within(0.0001);
var decimal1 = 1.0001m;
var decimal2 = 1.0002m;

await TUnitAssert.That(decimal1).IsEqualTo(decimal2).Within(0.0001m);
}

[Test]
public async Task Decimal_EqualsTo__With_Tolerance_Failure()
{
var double1 = 1.0001d;
var double2 = 1.0003d;
await TUnitAssert.ThrowsAsync<TUnitAssertionException>(async () => await TUnitAssert.That(double1).IsEqualTo(double2).Within(0.0001));
var decimal1 = 1.0001m;
var decimal2 = 1.0003m;

await TUnitAssert.ThrowsAsync<TUnitAssertionException>(async () => await TUnitAssert.That(decimal1).IsEqualTo(decimal2).Within(0.0001m));
}
#endif
}
35 changes: 35 additions & 0 deletions TUnit.Assertions/Conditions/SpecializedEqualityAssertions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,41 @@ protected override bool AreExactlyEqual(long actual, long expected)
}
}

/// <summary>
/// Asserts that a decimal value is equal to another, with optional tolerance.
/// </summary>
[AssertionExtension("IsEqualTo", OverloadResolutionPriority = 2)]
public class DecimalEqualsAssertion : ToleranceBasedEqualsAssertion<decimal, decimal>
{
public DecimalEqualsAssertion(
AssertionContext<decimal> context,
decimal expected)
: base(context, expected)
{
}

protected override bool HasToleranceValue()
{
return true; // decimal? always has meaningful value when not null
}

protected override bool IsWithinTolerance(decimal actual, decimal expected, decimal tolerance)
{
var diff = Math.Abs(actual - expected);
return diff <= tolerance;
}

protected override object CalculateDifference(decimal actual, decimal expected)
{
return Math.Abs(actual - expected);
}

protected override bool AreExactlyEqual(decimal actual, decimal expected)
{
return actual == expected;
}
}

/// <summary>
/// Asserts that a DateTimeOffset value is equal to another, with optional tolerance.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -677,6 +677,15 @@ namespace .Conditions
[.(ExpectationMessage="to be a weekend day")]
public static bool IsWeekend(this value) { }
}
[.("IsEqualTo", OverloadResolutionPriority=2)]
public class DecimalEqualsAssertion : .<decimal, decimal>
{
public DecimalEqualsAssertion(.<decimal> context, decimal expected) { }
protected override bool AreExactlyEqual(decimal actual, decimal expected) { }
protected override object CalculateDifference(decimal actual, decimal expected) { }
protected override bool HasToleranceValue() { }
protected override bool IsWithinTolerance(decimal actual, decimal expected, decimal tolerance) { }
}
public class DictionaryContainsKeyAssertion<TDictionary, TKey, TValue> : .<TDictionary, TKey, TValue>
where TDictionary : .<TKey, TValue>
{
Expand Down Expand Up @@ -2500,6 +2509,11 @@ namespace .Extensions
protected override .<.> CheckAsync(.<> metadata) { }
protected override string GetExpectation() { }
}
public static class DecimalEqualsAssertionExtensions
{
[.(2)]
public static . IsEqualTo(this .<decimal> source, decimal expected, [.("expected")] string? expectedExpression = null) { }
}
public static class DirectoryHasFilesAssertionExtensions
{
public static . HasFiles(this .<.DirectoryInfo> source) { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -674,6 +674,15 @@ namespace .Conditions
[.(ExpectationMessage="to be a weekend day")]
public static bool IsWeekend(this value) { }
}
[.("IsEqualTo", OverloadResolutionPriority=2)]
public class DecimalEqualsAssertion : .<decimal, decimal>
{
public DecimalEqualsAssertion(.<decimal> context, decimal expected) { }
protected override bool AreExactlyEqual(decimal actual, decimal expected) { }
protected override object CalculateDifference(decimal actual, decimal expected) { }
protected override bool HasToleranceValue() { }
protected override bool IsWithinTolerance(decimal actual, decimal expected, decimal tolerance) { }
}
public class DictionaryContainsKeyAssertion<TDictionary, TKey, TValue> : .<TDictionary, TKey, TValue>
where TDictionary : .<TKey, TValue>
{
Expand Down Expand Up @@ -2494,6 +2503,10 @@ namespace .Extensions
protected override .<.> CheckAsync(.<> metadata) { }
protected override string GetExpectation() { }
}
public static class DecimalEqualsAssertionExtensions
{
public static . IsEqualTo(this .<decimal> source, decimal expected, [.("expected")] string? expectedExpression = null) { }
}
public static class DirectoryHasFilesAssertionExtensions
{
public static . HasFiles(this .<.DirectoryInfo> source) { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -677,6 +677,15 @@ namespace .Conditions
[.(ExpectationMessage="to be a weekend day")]
public static bool IsWeekend(this value) { }
}
[.("IsEqualTo", OverloadResolutionPriority=2)]
public class DecimalEqualsAssertion : .<decimal, decimal>
{
public DecimalEqualsAssertion(.<decimal> context, decimal expected) { }
protected override bool AreExactlyEqual(decimal actual, decimal expected) { }
protected override object CalculateDifference(decimal actual, decimal expected) { }
protected override bool HasToleranceValue() { }
protected override bool IsWithinTolerance(decimal actual, decimal expected, decimal tolerance) { }
}
public class DictionaryContainsKeyAssertion<TDictionary, TKey, TValue> : .<TDictionary, TKey, TValue>
where TDictionary : .<TKey, TValue>
{
Expand Down Expand Up @@ -2500,6 +2509,11 @@ namespace .Extensions
protected override .<.> CheckAsync(.<> metadata) { }
protected override string GetExpectation() { }
}
public static class DecimalEqualsAssertionExtensions
{
[.(2)]
public static . IsEqualTo(this .<decimal> source, decimal expected, [.("expected")] string? expectedExpression = null) { }
}
public static class DirectoryHasFilesAssertionExtensions
{
public static . HasFiles(this .<.DirectoryInfo> source) { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -637,6 +637,15 @@ namespace .Conditions
[.(ExpectationMessage="to be a weekend day")]
public static bool IsWeekend(this value) { }
}
[.("IsEqualTo", OverloadResolutionPriority=2)]
public class DecimalEqualsAssertion : .<decimal, decimal>
{
public DecimalEqualsAssertion(.<decimal> context, decimal expected) { }
protected override bool AreExactlyEqual(decimal actual, decimal expected) { }
protected override object CalculateDifference(decimal actual, decimal expected) { }
protected override bool HasToleranceValue() { }
protected override bool IsWithinTolerance(decimal actual, decimal expected, decimal tolerance) { }
}
public class DictionaryContainsKeyAssertion<TDictionary, TKey, TValue> : .<TDictionary, TKey, TValue>
where TDictionary : .<TKey, TValue>
{
Expand Down Expand Up @@ -2299,6 +2308,10 @@ namespace .Extensions
protected override .<.> CheckAsync(.<> metadata) { }
protected override string GetExpectation() { }
}
public static class DecimalEqualsAssertionExtensions
{
public static . IsEqualTo(this .<decimal> source, decimal expected, [.("expected")] string? expectedExpression = null) { }
}
public static class DirectoryHasFilesAssertionExtensions
{
public static . HasFiles(this .<.DirectoryInfo> source) { }
Expand Down
Loading