Skip to content

Commit

Permalink
Merge pull request #2 from SuneBuur/patch-1
Browse files Browse the repository at this point in the history
Patch 1
  • Loading branch information
SuneBuur committed Sep 1, 2015
2 parents 72b2056 + e11c3b8 commit 470fff3
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 11 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
}
}
}
15 changes: 8 additions & 7 deletions EvilDICOM.Core/EvilDICOM.Core/IO/Data/StringDataComposer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Linq;
using EvilDICOM.Core.Element;
using DateTime = System.DateTime;
using System.Globalization;

namespace EvilDICOM.Core.IO.Data
{
Expand All @@ -11,7 +12,7 @@ public static string ComposeAgeString(Age data)
{
if (data != null)
{
string ageString = String.Format("{0:00#}", data.Number);
string ageString = String.Format(CultureInfo.InvariantCulture, "{0:00#}", data.Number);
switch (data.Units)
{
case Age.Unit.DAYS:
Expand All @@ -37,7 +38,7 @@ public static string ComposeDate(DateTime? data)
if (data != null)
{
var date = (DateTime) data;
return date.ToString("yyyyMMdd");
return date.ToString("yyyyMMdd", CultureInfo.InvariantCulture);
}
return string.Empty;
}
Expand All @@ -47,7 +48,7 @@ public static string ComposeDateTime(DateTime? data)
if (data != null)
{
var date = (DateTime) data;
return date.ToString("yyyyMMddHHmmss.ffffff");
return date.ToString("yyyyMMddHHmmss.ffffff", CultureInfo.InvariantCulture);
}
return string.Empty;
}
Expand All @@ -56,7 +57,7 @@ public static string ComposeDecimalString(double[] data)
{
if (data != null)
{
return String.Join("\\", data.Select(d => d.ToString()).ToArray());
return String.Join("\\", data.Select(d => d.ToString(CultureInfo.InvariantCulture)).ToArray());
}
return string.Empty;
}
Expand All @@ -65,7 +66,7 @@ public static string ComposeIntegerString(int[] data)
{
if (data != null)
{
return String.Join("\\", data.Select(d => d.ToString()).ToArray());
return String.Join("\\", data.Select(d => d.ToString(CultureInfo.InvariantCulture)).ToArray());
}
return string.Empty;
}
Expand All @@ -75,9 +76,9 @@ public static string ComposeTime(DateTime? data)
if (data != null)
{
var date = (DateTime) data;
return date.ToString("HHmmss.ffffff");
return date.ToString("HHmmss.ffffff", CultureInfo.InvariantCulture);
}
return string.Empty;
}
}
}
}

0 comments on commit 470fff3

Please sign in to comment.