public void TestDoubleToString(string expected, double value) { StringWriter writer = new StringWriter(); Grisu.DoubleToString(value, writer); Assert.AreEqual(expected, writer.ToString()); }
private void CheckDoubleToStringEquals(string expected, double value) { StringWriter writer = new StringWriter(); Grisu.DoubleToString(value, writer); Assert.AreEqual(expected, writer.ToString()); }
public void TestPerformance() { Random r = new Random(1); double[] values = new double[1000000]; for (int i = 0; i < values.Length; ++i) { values[i] = (r.NextDouble() - 0.5) * Math.Pow(10, r.NextDouble() * 308); } StringWriter writer = new StringWriter(); Stopwatch sw = new Stopwatch(); sw.Start(); for (int i = 0; i < values.Length; ++i) { //builder.AppendFormat("{0:R}", values[i]); writer.Write(values[i].ToString("R")); //builder.Append(values[i]); } sw.Stop(); Console.WriteLine("builtin length: " + writer.ToString().Length); Console.WriteLine("builtin time: " + sw.ElapsedMilliseconds); if (values.Length < 100) { Console.WriteLine(writer.ToString()); } writer = new StringWriter(); sw = new Stopwatch(); sw.Start(); for (int i = 0; i < values.Length; ++i) { Grisu.DoubleToString(values[i], writer); } sw.Stop(); Console.WriteLine("grisu length: " + writer.ToString().Length); Console.WriteLine("grisu time: " + sw.ElapsedMilliseconds); if (values.Length < 100) { Console.WriteLine(writer.ToString()); } }