Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -259,3 +259,6 @@ paket-files/
# VS Code
.vscode/settings.json


# Exclude downloaded nuget.exe
.nuget/nuget.exe
128 changes: 128 additions & 0 deletions Tests/NFUnitTestSystemLib/UnitTestDouble.cs
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,134 @@ public void Equals()

}

[TestMethod]
public void ToString_NoFormatString()
{
// Test basic ToString() without format string (uses "G" format by default)
double value = 0;
Assert.AreEqual("0", value.ToString(), "0.ToString() failed");

value = 123;
Assert.AreEqual("123", value.ToString(), "123.ToString() failed");

value = -123;
Assert.AreEqual("-123", value.ToString(), "-123.ToString() failed");

value = 123.456;
Assert.AreEqual("123.456", value.ToString(), "123.456.ToString() failed");

value = -123.456;
Assert.AreEqual("-123.456", value.ToString(), "-123.456.ToString() failed");

value = 0.1;
Assert.AreEqual("0.1", value.ToString(), "0.1.ToString() failed");

value = -0.1;
Assert.AreEqual("-0.1", value.ToString(), "-0.1.ToString() failed");

value = 1234567.89;
Assert.AreEqual("1234567.89", value.ToString(), "1234567.89.ToString() failed");

value = -1234567.89;
Assert.AreEqual("-1234567.89", value.ToString(), "-1234567.89.ToString() failed");
}

[TestMethod]
public void ToString_SpecialValues()
{
// Test special values
Assert.AreEqual("NaN", double.NaN.ToString(), "NaN.ToString() failed");
Assert.AreEqual("Infinity", double.PositiveInfinity.ToString(), "PositiveInfinity.ToString() failed");
Assert.AreEqual("-Infinity", double.NegativeInfinity.ToString(), "NegativeInfinity.ToString() failed");
}

[TestMethod]
public void ToString_ZeroValues()
{
// Test zero and negative zero
double zero = 0.0;
Assert.AreEqual("0", zero.ToString(), "0.0.ToString() failed");

double negativeZero = -0.0;
Assert.AreEqual("0", negativeZero.ToString(), "-0.0.ToString() failed");
}

[TestMethod]
public void ToString_SmallValues()
{
// Test very small values
double value = 0.0001;
Assert.AreEqual("0.0001", value.ToString(), "0.0001.ToString() failed");

value = -0.0001;
Assert.AreEqual("-0.0001", value.ToString(), "-0.0001.ToString() failed");

value = 1e-10;
Assert.AreEqual("1E-10", value.ToString(), "1e-10.ToString() failed");

value = -1e-10;
Assert.AreEqual("-1E-10", value.ToString(), "-1e-10.ToString() failed");
}

[TestMethod]
public void ToString_LargeValues()
{
// Test large values
double value = 1e10;
Assert.AreEqual("10000000000", value.ToString(), "1e10.ToString() failed");

value = -1e10;
Assert.AreEqual("-10000000000", value.ToString(), "-1e10.ToString() failed");

value = 1.23456789e15;
Assert.AreEqual("1234567890000000", value.ToString(), "1.23456789e15.ToString() failed");
}

[TestMethod]
public void ToString_ScientificNotation()
{
// Test values that should use scientific notation in default format
double value = 1.23e20;
string result = value.ToString();
Assert.IsTrue(result.Contains("E") || result.Contains("e"), "1.23e20.ToString() should use scientific notation");

value = -1.23e20;
result = value.ToString();
Assert.IsTrue(result.Contains("E") || result.Contains("e"), "-1.23e20.ToString() should use scientific notation");

value = 1.23e-20;
result = value.ToString();
Assert.IsTrue(result.Contains("E") || result.Contains("e"), "1.23e-20.ToString() should use scientific notation");
}

[TestMethod]
public void ToString_RoundingBehavior()
{
// Test rounding behavior
double value = 1.234567890123456;
string result = value.ToString();
Assert.IsTrue(result.Length > 0, "ToString() should return a non-empty string");
Assert.IsTrue(result.Contains("."), "Decimal value ToString() should contain a decimal point");

value = 0.123456789012345678;
result = value.ToString();
Assert.IsTrue(result.StartsWith("0."), "Fractional value should start with '0.'");
}

[TestMethod]
public void ToString_WithFormatString()
{
// Test ToString() with format string
double value = 123.456;
Assert.AreEqual("123.46", value.ToString("F2"), "ToString('F2') failed");

value = 1234.5;
Assert.AreEqual("1,234.50", value.ToString("N2"), "ToString('N2') failed");

value = 1.23456e10;
Assert.AreEqual("1.234560E+010", value.ToString("E6"), "ToString('E6') failed");
}

private sealed class DoubleTestData
{
public object D1 { get; }
Expand Down
129 changes: 129 additions & 0 deletions Tests/NFUnitTestSystemLib/UnitTestSingle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,135 @@ public void Equals()

}

[TestMethod]
public void ToString_NoFormatString()
{
// Test basic ToString() without format string (uses "G" format by default)
float value = 0;
Assert.AreEqual("0", value.ToString(), "0.ToString() failed");

value = 123;
Assert.AreEqual("123", value.ToString(), "123.ToString() failed");

value = -123;
Assert.AreEqual("-123", value.ToString(), "-123.ToString() failed");

value = 123.456f;
Assert.AreEqual("123.456", value.ToString(), "123.456f.ToString() failed");

value = -123.456f;
Assert.AreEqual("-123.456", value.ToString(), "-123.456f.ToString() failed");

value = 0.1f;
Assert.AreEqual("0.1", value.ToString(), "0.1f.ToString() failed");

value = -0.1f;
Assert.AreEqual("-0.1", value.ToString(), "-0.1f.ToString() failed");

value = 1234567.89f;
Assert.AreEqual("1234567.89", value.ToString(), "1234567.89f.ToString() failed");

value = -1234567.89f;
Assert.AreEqual("-1234567.89", value.ToString(), "-1234567.89f.ToString() failed");
}

[TestMethod]
public void ToString_SpecialValues()
{
// Test special values
Assert.AreEqual("NaN", float.NaN.ToString(), "NaN.ToString() failed");
Assert.AreEqual("Infinity", float.PositiveInfinity.ToString(), "PositiveInfinity.ToString() failed");
Assert.AreEqual("-Infinity", float.NegativeInfinity.ToString(), "NegativeInfinity.ToString() failed");
}

[TestMethod]
public void ToString_ZeroValues()
{
// Test zero and negative zero
float zero = 0.0f;
Assert.AreEqual("0", zero.ToString(), "0.0f.ToString() failed");

float negativeZero = -0.0f;
Assert.AreEqual("0", negativeZero.ToString(), "-0.0f.ToString() failed");
}

[TestMethod]
public void ToString_SmallValues()
{
// Test very small values
float value = 0.0001f;
Assert.AreEqual("0.0001", value.ToString(), "0.0001f.ToString() failed");

value = -0.0001f;
Assert.AreEqual("-0.0001", value.ToString(), "-0.0001f.ToString() failed");

value = 1e-10f;
Assert.AreEqual("1E-10", value.ToString(), "1e-10f.ToString() failed");

value = -1e-10f;
Assert.AreEqual("-1E-10", value.ToString(), "-1e-10f.ToString() failed");
}

[TestMethod]
public void ToString_LargeValues()
{
// Test large values
float value = 1e10f;
Assert.AreEqual("10000000000", value.ToString(), "1e10f.ToString() failed");

value = -1e10f;
Assert.AreEqual("-10000000000", value.ToString(), "-1e10f.ToString() failed");

value = 1.23456789e15f;
string result = value.ToString();
Assert.IsTrue(result.Length > 0, "ToString() should return a non-empty string");
}

[TestMethod]
public void ToString_ScientificNotation()
{
// Test values that should use scientific notation in default format
float value = 1.23e20f;
string result = value.ToString();
Assert.IsTrue(result.Contains("E") || result.Contains("e"), "1.23e20f.ToString() should use scientific notation");

value = -1.23e20f;
result = value.ToString();
Assert.IsTrue(result.Contains("E") || result.Contains("e"), "-1.23e20f.ToString() should use scientific notation");

value = 1.23e-20f;
result = value.ToString();
Assert.IsTrue(result.Contains("E") || result.Contains("e"), "1.23e-20f.ToString() should use scientific notation");
}

[TestMethod]
public void ToString_RoundingBehavior()
{
// Test rounding behavior
float value = 1.23456789f;
string result = value.ToString();
Assert.IsTrue(result.Length > 0, "ToString() should return a non-empty string");
Assert.IsTrue(result.Contains("."), "Decimal value ToString() should contain a decimal point");

value = 0.123456789f;
result = value.ToString();
Assert.IsTrue(result.StartsWith("0."), "Fractional value should start with '0.'");
}

[TestMethod]
public void ToString_WithFormatString()
{
// Test ToString() with format string
float value = 123.456f;
Assert.AreEqual("123.46", value.ToString("F2"), "ToString('F2') failed");

value = 1234.5f;
Assert.AreEqual("1,234.50", value.ToString("N2"), "ToString('N2') failed");

value = 1.23456e10f;
Assert.AreEqual("1.234560E+010", value.ToString("E6"), "ToString('E6') failed");
}

private sealed class SingleTestData
{
public object F1 { get; }
Expand Down