Beispiel #1
0
    public static void Test(string[] args)
    {
        string s = null;
        long   l = 0L;
        double d = 0.0D;

        // run once with symbolic_displaybolic notation false
        // and once with symbolic_displaybolic notation true
        for (int tr = 0; tr < 2; tr++)
        {
            bool symbolic_display = (tr == 1);

            // TEST RUN
            Console.WriteLine("TEST: First 10000 integers in base 2 to 36");
            Console.WriteLine(DateTime.Now.ToString("mm:ss:fff"));
            for (long i = 0L; i < 10000L; i++)
            {
                for (int r = 2; r <= 36; r++)
                {
                    s = Radix.Encode(i, r, symbolic_display);
                    l = Radix.Decode(s, r, symbolic_display);
                    if (i != l)
                    {
                        Console.WriteLine("error: r i l {0} {1} {2}", r, i, l);
                    }
                    d = Radix.Decode(s, r, symbolic_display);
                    if (d != i)
                    {
                        Console.WriteLine("error: r, l d {0} {1} {2}", r, l, d);
                    }
                }
            }
            Console.WriteLine(DateTime.Now.ToString("mm:ss:fff"));
            Console.WriteLine();

            Console.WriteLine("TESTRUN 2: two well known doubles in base 2 to 36");
            Console.ReadLine();
            Console.WriteLine("\n PI \n");
            for (int r = 2; r <= 36; r++)
            {
                s = Radix.Encode(Math.PI, r, symbolic_display);
                d = Radix.Decode(s, r, symbolic_display);
                if (Math.PI != d)
                {
                    Console.WriteLine("error: radix {0} : {1}  {2}", r, d, Math.PI);
                }
            }

            Console.WriteLine("\n  E \n");
            for (int r = 2; r <= 36; r++)
            {
                s = Radix.Encode(Math.E, r, symbolic_display);
                d = Radix.Decode(s, r, symbolic_display);
                if (Math.E != d)
                {
                    Console.WriteLine("error: radix {0} : {1}  {2}", r, d, Math.E);
                }
            }
            Console.WriteLine();

            Console.WriteLine("TESTRUN 3: force an error while decoding");
            Console.ReadLine();
            try
            {
                l = Radix.Decode("C000", 7, symbolic_display);
                Console.WriteLine("{0}", l);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine();
            }
        }

        Console.WriteLine("TESTRUN 4: some usage");

        s = Radix.Encode(100, 4, true);
        Console.WriteLine(s);
        l = Radix.Decode(s, 4, true);
        Console.WriteLine(l);
        s = Radix.Encode(100, 16);
        Console.WriteLine(s);
        Console.WriteLine();
        s = Radix.Encode(1000000000000, 11);
        Console.WriteLine(s);
        Console.WriteLine(Radix.Spaces(s, 2, '.'));
        Console.WriteLine(Radix.Spaces(s, 4, '.'));
        Console.WriteLine(Radix.Spaces(s, 4));
        Console.WriteLine();

        Console.WriteLine("Convert a hexadecimal IP address");
        l = Radix.Decode("C0FFCCBB", 16);
        s = Radix.Encode(l, 256, true);
        Console.WriteLine(s);
        l = Radix.Decode(s, 256, true);
        Console.WriteLine(l.ToString());
        s = Radix.Encode(l, 16);
        Console.WriteLine(s);

        Console.WriteLine();

        for (int i = 0; i <= 100; i++)
        {
            Console.Write(Radix.Encode(i, 13) + " ");
        }

        Console.WriteLine();
        Console.WriteLine("ready");
    }
Beispiel #2
0
 private static string CovertMacToBase36String(long MacAddr)
 {
     return(Radix.Encode(MacAddr, 0x24L));
 }