Ejemplo n.º 1
0
        public void TestDoubleToString(string expected, double value)
        {
            StringWriter writer = new StringWriter();

            Grisu.DoubleToString(value, writer);
            Assert.AreEqual(expected, writer.ToString());
        }
Ejemplo n.º 2
0
        private void CheckDoubleToStringEquals(string expected, double value)
        {
            StringWriter writer = new StringWriter();

            Grisu.DoubleToString(value, writer);
            Assert.AreEqual(expected, writer.ToString());
        }
Ejemplo n.º 3
0
        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());
            }
        }