function ranlib_test_gennf ( phrase )

%*****************************************************************************80
%
%% RANLIB_TEST_GENNF tests GENNF, which generates noncentral F deviates.
%
%  Licensing:
%
%    This code is distributed under the GNU LGPL license.
%
%  Modified:
%
%    01 April 2013
%
%  Author:
%
%    John Burkardt
%
  n = 10000;

  fprintf ( 1, '\n' );
  fprintf ( 1, 'RANLIB_TEST_GENNF\n' );
  fprintf ( 1, '  Test GENNF,\n' );
  fprintf ( 1, '  which generates noncentral F deviates.\n' );
%
%  Initialize the generators.
%
  initialize ( );
%
%  Set the seeds based on the phrase.
%
  [ seed1, seed2 ] = phrtsd ( phrase );
%
%  Initialize all generators.
%
  set_initial_seed ( seed1, seed2 );
%
%  Select the parameters at random within a given range.
%
  low = 3.0;
  high = 10.0;
  dfn = genunf ( low, high );

  low = 5.0;
  high = 10.0;
  dfd = genunf ( low, high );

  low = 0.0;
  high = 2.0;
  xnonc = genunf ( low, high );

  fprintf ( 1, '\n' );
  fprintf ( 1, '  N = %d\n', n );
  fprintf ( 1, '\n' );
  fprintf ( 1, '  Parameters:\n' );
  fprintf ( 1, '\n' );
  fprintf ( 1, '  DFN =   %g\n', dfn );
  fprintf ( 1, '  DFD =   %g\n', dfd );
  fprintf ( 1, '  XNONC = %g\n', xnonc );
%
%  Generate N samples.
%
  for i = 1 : n
    array(i) = gennf ( dfn, dfd, xnonc );
  end
%
%  Compute statistics on the samples.
%
  [ av, var, xmin, xmax ] = stats ( array, n );
%
%  Request expected value of statistics for this distribution.
%
  pdf = 'nf';
  param(1) = dfn;
  param(2) = dfd;
  param(3) = xnonc;
  [ avtr, vartr ] = trstat ( pdf, param );

  fprintf ( 1, '\n' );
  fprintf ( 1, '  Sample data range:          %14.6g  %14.6g\n', xmin, xmax );
  fprintf ( 1, '  Sample mean, variance:      %14.6g  %14.6g\n', av,   var );
  fprintf ( 1, '  Distribution mean, variance %14.6g  %14.6g\n', avtr, vartr );

  return
end
