Пример #1
0
        public void WriteNumerical_Decimal()
        {
            var val = ABSaveWriter.WriteNumerical(616136316631790.13613137137177m, TypeCode.Decimal, true);

            // Act/Assert
            Assert.AreEqual(val, "\b\u000f\u0019\u008e[Òr½o2\u0001\u009a\u0015Ç\0\0\u000e");
        }
Пример #2
0
        public void WriteNumerical_Int16ToSB()
        {
            // Act
            StringBuilder sb = new StringBuilder();

            ABSaveWriter.WriteNumerical(243, TypeCode.Int16, true, true, sb);

            // Act/Assert
            Assert.AreEqual(sb.ToString(), "\u0001ó");
        }
Пример #3
0
        public void WriteNumerical_DecimalToSB()
        {
            // Act
            var sb = new StringBuilder();

            ABSaveWriter.WriteNumerical(616136316631790.13613137137177m, TypeCode.Decimal, true, true, sb);

            // Act/Assert
            Assert.AreEqual(sb.ToString(), "\b\u000f\u0019\u008e[Òr½o2\u0001\u009a\u0015Ç\0\0\u000e");
        }
Пример #4
0
        private static void NumberExperimenting()
        {
            var num   = 216161;
            var bytes = BitConverter.GetBytes(num);

            if (BitConverter.IsLittleEndian)
            {
                Array.Reverse(bytes);
            }

            Console.ReadLine();
            if (BitConverter.IsLittleEndian)
            {
                Array.Reverse(bytes);
            }

            var num_recreate = BitConverter.ToInt32(bytes, 0);

            // Convert a decimal to bytes
            Stopwatch watch = Stopwatch.StartNew();

            decimal dec = 261663061631136316003160.1616754194237272794327232324747478442882884282m;

            var decBytes = decimal.GetBits(dec);

            var final = new byte[16];

            BitConverter.GetBytes(decBytes[0]).CopyTo(final, 0);
            BitConverter.GetBytes(decBytes[1]).CopyTo(final, 4);
            BitConverter.GetBytes(decBytes[2]).CopyTo(final, 8);
            BitConverter.GetBytes(decBytes[3]).CopyTo(final, 12);

            watch.Stop();
            Console.WriteLine(watch.ElapsedMilliseconds + ": " + watch.ElapsedTicks);

            // Convert back.
            Stopwatch watch2 = Stopwatch.StartNew();

            var recreate_arr = new int[4];

            recreate_arr[0] = BitConverter.ToInt32(final, 0);
            recreate_arr[1] = BitConverter.ToInt32(final, 4);
            recreate_arr[2] = BitConverter.ToInt32(final, 8);
            recreate_arr[3] = BitConverter.ToInt32(final, 12);

            var finalDec = new decimal(recreate_arr);

            watch2.Stop();


            // Test byte lengths.
            var single = BitConverter.GetBytes(612316f);
            var dou    = BitConverter.GetBytes(362361d);

            while (true)
            {
                var current = ABSaveWriter.WriteNumerical(626136617721, TypeCode.Int64, false);

                Console.WriteLine(watch2.ElapsedMilliseconds + ": " + watch2.ElapsedTicks);
            }


            //BitConverter.
        }
Пример #5
0
 public void WriteNumerical_Int16()
 {
     // Act/Assert
     Assert.AreEqual(ABSaveWriter.WriteNumerical(243, TypeCode.Int16, true), "\u0001ó");
 }
Пример #6
0
 public void WriteNumerical_Double()
 {
     // Act/Assert
     Assert.AreEqual(ABSaveWriter.WriteNumerical(6261366.36161d, TypeCode.Double, true), "\b\bE\u009e$\u0097\u009dâWA");
 }
Пример #7
0
 public void WriteNumerical_Float()
 {
     // Act/Assert
     Assert.AreEqual(ABSaveWriter.WriteNumerical(62613661.36161f, TypeCode.Single, true), "\b\u0004'ÚnL");
 }
Пример #8
0
 public void WriteNumerical_Int64()
 {
     // Act/Assert
     Assert.AreEqual(ABSaveWriter.WriteNumerical(626136617721, TypeCode.Int64, true), "\b\u0005ù\u0092¦È\u0091");
 }
Пример #9
0
 public void WriteNumerical_Int32()
 {
     // Act/Assert
     Assert.AreEqual(ABSaveWriter.WriteNumerical(6261, TypeCode.Int32, true), "\u0007u\u0018");
 }