From 26e0e50615dabbb22b94cbb0c6e48c1c08f2f938 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Thu, 19 Mar 2009 18:15:49 +0000 Subject: [PATCH] * Fixed two failing OSD tests. OSDReal.AsString() now uses a slower but more accurate method to produce values that will always round-trip. A random "B" character was removed from the XmlSD DeserializeLLSDSample() test git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2508 52acb1d6-8a22-11de-b505-999d5b087335 --- OpenMetaverse.StructuredData/StructuredData.cs | 3 ++- OpenMetaverse.Tests/NotationLLSDTests.cs | 2 -- OpenMetaverse.Tests/XmlLLSDTests.cs | 2 +- OpenMetaverse/Types/UtilsConversions.cs | 2 ++ 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/OpenMetaverse.StructuredData/StructuredData.cs b/OpenMetaverse.StructuredData/StructuredData.cs index 11179ecc..5e370ae3 100644 --- a/OpenMetaverse.StructuredData/StructuredData.cs +++ b/OpenMetaverse.StructuredData/StructuredData.cs @@ -457,7 +457,8 @@ namespace OpenMetaverse.StructuredData } public override double AsReal() { return value; } - public override string AsString() { return value.ToString(Utils.EnUsCulture); } + // "r" ensures the value will correctly round-trip back through Double.TryParse + public override string AsString() { return value.ToString("r", Utils.EnUsCulture); } public override byte[] AsBinary() { return Utils.DoubleToBytesBig(value); } public override string ToString() { return AsString(); } } diff --git a/OpenMetaverse.Tests/NotationLLSDTests.cs b/OpenMetaverse.Tests/NotationLLSDTests.cs index c58a64b1..a99f9b73 100644 --- a/OpenMetaverse.Tests/NotationLLSDTests.cs +++ b/OpenMetaverse.Tests/NotationLLSDTests.cs @@ -261,8 +261,6 @@ namespace OpenMetaverse.Tests OSD llsdSixDS = OSDParser.DeserializeLLSDNotation(sSix); Assert.AreEqual(OSDType.Real, llsdSixDS.Type); Assert.AreEqual(2.0193899999999998204e-06, llsdSixDS.AsReal()); - - } [Test()] diff --git a/OpenMetaverse.Tests/XmlLLSDTests.cs b/OpenMetaverse.Tests/XmlLLSDTests.cs index fa56d43d..4eef25dd 100644 --- a/OpenMetaverse.Tests/XmlLLSDTests.cs +++ b/OpenMetaverse.Tests/XmlLLSDTests.cs @@ -74,7 +74,7 @@ namespace OpenMetaverse.Tests 4 active task count 0 - pending uploadsB + pending uploads 0.0001096525 diff --git a/OpenMetaverse/Types/UtilsConversions.cs b/OpenMetaverse/Types/UtilsConversions.cs index 2e324a06..280610cf 100644 --- a/OpenMetaverse/Types/UtilsConversions.cs +++ b/OpenMetaverse/Types/UtilsConversions.cs @@ -706,6 +706,8 @@ namespace OpenMetaverse /// True if the parse was successful, otherwise false public static bool TryParseDouble(string s, out double result) { + // NOTE: Double.TryParse can't parse Double.[Min/Max]Value.ToString(), see: + // http://blogs.msdn.com/bclteam/archive/2006/05/24/598169.aspx return Double.TryParse(s, System.Globalization.NumberStyles.Float, EnUsCulture.NumberFormat, out result); }