function ranlib_test_gennch ( phrase )

%*****************************************************************************80
%
%% ranlib_test_gennch() tests gennch().
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    01 April 2013
%
%  Author:
%
%    John Burkardt
%
  n = 1000;

  fprintf ( 1, '\n' );
  fprintf ( 1, 'ranlib_test_gennch():\n' );
  fprintf ( 1, '  gennch() generates noncentral Chi-square deviates.\n' );
%
%  Initialize the generators.
%
  initialize ( );
%
%  Set the keys based on the phrase.
%
  [ key1, key2 ] = phrtsd ( phrase );
%
%  Initialize all generators.
%
  set_initial_key ( key1, key2 );
%
%  Select the parameters at random within a given range.
%
  low = 2.0;
  high = 10.0;
  df = 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, '  Parameter values:\n' );
  fprintf ( 1, '\n' );
  fprintf ( 1, '  DF =    %g\n', df );
  fprintf ( 1, '  XNONC = %g\n', xnonc );
%
%  Generate N samples.
%
  for i = 1 : n
    array(i) = gennch ( df, xnonc );
  end
%
%  Compute statistics on the samples.
%
  [ av, var, xmin, xmax ] = stats ( array, n );
%
%  Request expected value of statistics for this distribution.
%
  pdf = 'nch';
  param(1) = df;
  param(2) = 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
