Added unit tests for parallel background worker; fixed some issues with the parallel background worker; added failing unit test for almost equal checks with doubles; fixed a typo
git-svn-id: file:///srv/devel/repo-conversion/nusu@291 d2e56fa2-650e-0410-a79f-9358c0239efd
This commit is contained in:
parent
a18cb63fc5
commit
feac2b9c89
5 changed files with 334 additions and 41 deletions
|
|
@ -148,7 +148,12 @@ namespace Nuclex.Support {
|
|||
// If both are negative -> fine
|
||||
// If both are positive -> fine
|
||||
// If different -> Measure both distances to zero in ulps and sum them
|
||||
public void NegativeZeroEqualsPositiveZero() {
|
||||
/// <summary>
|
||||
/// Verifies that the negative floating point zero is within one ulp of the positive
|
||||
/// floating point zero and vice versa
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void NegativeZeroFloatEqualsPositiveZero() {
|
||||
float zero = 0.0f;
|
||||
float zeroPlusOneUlp = FloatHelper.ReinterpretAsFloat(
|
||||
FloatHelper.ReinterpretAsInt(zero) + 1
|
||||
|
|
@ -163,6 +168,26 @@ namespace Nuclex.Support {
|
|||
Assert.IsTrue(FloatHelper.AreAlmostEqual(zero, zeroMinusOneUlp, 1));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Verifies that the negative double precision floating point zero is within one ulp
|
||||
/// of the positive double precision floating point zero and vice versa
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void NegativeZeroDoubleEqualsPositiveZero() {
|
||||
double zero = 0.0;
|
||||
double zeroPlusOneUlp = FloatHelper.ReinterpretAsDouble(
|
||||
FloatHelper.ReinterpretAsLong(zero) + 1
|
||||
);
|
||||
double zeroMinusOneUlp = -zeroPlusOneUlp;
|
||||
|
||||
bool test = FloatHelper.AreAlmostEqual(zeroMinusOneUlp, zeroPlusOneUlp, 1);
|
||||
|
||||
Assert.IsFalse(FloatHelper.AreAlmostEqual(zero, zeroPlusOneUlp, 0));
|
||||
Assert.IsTrue(FloatHelper.AreAlmostEqual(zero, zeroPlusOneUlp, 1));
|
||||
Assert.IsFalse(FloatHelper.AreAlmostEqual(zero, zeroMinusOneUlp, 0));
|
||||
Assert.IsTrue(FloatHelper.AreAlmostEqual(zero, zeroMinusOneUlp, 1));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} // namespace Nuclex.Support
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue