Skip to content

Commit

Permalink
Merge pull request #1 from SuneBuur/patch-2
Browse files Browse the repository at this point in the history
ToString_VerifyOutput fails in non dot separator cultures.
  • Loading branch information
SuneBuur committed Sep 1, 2015
2 parents c735a94 + d4a8d66 commit e11c3b8
Showing 1 changed file with 46 additions and 4 deletions.
50 changes: 46 additions & 4 deletions EvilDICOM.Core/EvilDICOM.Core.Tests/DecimalStringTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
using EvilDICOM.Core.Element;
using EvilDICOM.Core.Helpers;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Globalization;
using System.Threading;

namespace EvilDICOM.Core.Tests
{
Expand Down Expand Up @@ -82,13 +84,53 @@ public void DData__Setter_InvalidUnderlyingType_Throws()
}

[TestMethod]
public void ToString_VerifyOutput()
public void ToString_VerifyOutput_CurrentCultureInsensitive_AreNotEqual()
{
const string expected = "(300A,0082) : BeamDoseSpecificationPoint (DecimalString) -> 1 | -3.5 | 2.5";
var actual = _decimalString.ToString();
Assert.AreEqual(expected, actual);
var currentThread = Thread.CurrentThread;
var currentCulture = currentThread.CurrentCulture;

currentThread.CurrentCulture = CreateNonDotSeparatorCulture();

try
{
var actual = _decimalString.ToString();
Assert.AreNotEqual(expected, actual);
}
finally
{
currentThread.CurrentCulture = currentCulture;
}
}

[TestMethod]
public void ToString_VerifyOutput_CurrentCultureSensitive_AreEqual()
{
const string expected = "(300A,0082) : BeamDoseSpecificationPoint (DecimalString) -> 1 | -3*5 | 2*5";
var currentThread = Thread.CurrentThread;
var currentCulture = currentThread.CurrentCulture;

currentThread.CurrentCulture = CreateNonDotSeparatorCulture();

try
{
var actual = _decimalString.ToString();
Assert.AreEqual(expected, actual);
}
finally
{
currentThread.CurrentCulture = currentCulture;
}
}

private static CultureInfo CreateNonDotSeparatorCulture()
{
var nonDotSeparatorCulture = (CultureInfo)CultureInfo.InvariantCulture.Clone();
nonDotSeparatorCulture.NumberFormat.NumberGroupSeparator = "@";
nonDotSeparatorCulture.NumberFormat.NumberDecimalSeparator = "*";
return nonDotSeparatorCulture;
}

#endregion
}
}
}

0 comments on commit e11c3b8

Please sign in to comment.