function ranlib_test_ignnbn ( phrase )

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

  fprintf ( 1, '\n' );
  fprintf ( 1, 'RANLIB_TEST_IGNNBN\n' );
  fprintf ( 1, '  Test IGNNBN,\n' );
  fprintf ( 1, '  which generates negative binomial 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 = 3.0;
  high = 20.0;
  nn = floor ( genunf ( low, high ) );

  low = 0.0;
  high = 1.0;
  pp = 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, '  NN = %d\n', nn );
  fprintf ( 1, '  PP = %g\n', pp );
%
%  Generate N samples.
%
  for i = 1 : n
    array(i) = ignnbn ( nn, pp );
  end
%
%  Compute statistics on the samples.
%
  [ av, var, xmin, xmax ] = stats ( array, n );
%
%  Request expected value of statistics for this distribution.
%
  pdf = 'nbn';
  param(1) = nn;
  param(2) = pp;
  [ 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
