public static void legendre_function_q_values_test()
    //****************************************************************************80
    //
    //  Purpose:
    //
    //    LEGENDRE_FUNCTION_Q_VALUES_TEST tests LEGENDRE_FUNCTION_Q_VALUES.
    //
    //  Licensing:
    //
    //    This code is distributed under the GNU LGPL license.
    //
    //  Modified:
    //
    //    13 June 2007
    //
    //  Author:
    //
    //    John Burkardt
    //
    {
        double fx = 0;
        int    n  = 0;
        double x  = 0;

        Console.WriteLine("");
        Console.WriteLine("LEGENDRE_FUNCTION_Q_VALUES_TEST:");
        Console.WriteLine("  LEGENDRE_FUNCTION_Q_VALUES stores values of");
        Console.WriteLine("  the Legendre Q function.");
        Console.WriteLine("");
        Console.WriteLine("     N    X             Q(N)(X)");
        Console.WriteLine("");
        int n_data = 0;

        for (;;)
        {
            Legendre.legendre_function_q_values(ref n_data, ref n, ref x, ref fx);
            if (n_data == 0)
            {
                break;
            }

            Console.WriteLine("  "
                              + n.ToString(CultureInfo.InvariantCulture).PadLeft(6) + "  "
                              + x.ToString(CultureInfo.InvariantCulture).PadLeft(12) + "  "
                              + fx.ToString("0.################").PadLeft(24) + "");
        }
    }