function cycle_floyd_test01 ( )

%*****************************************************************************80
%
%% cycle_floyd_test01() tests cycle_floyd() for a tiny example.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    17 June 2012
%
%  Author:
%
%    John Burkardt
%
  fprintf ( 1, '\n' );
  fprintf ( 1, 'cycle_floyd_test01():\n' );
  fprintf ( 1, '  Test cycle_floyd() on f1().\n' );
  fprintf ( 1, '  f1(0) = 6.\n' );
  fprintf ( 1, '  f1(1) = 6.\n' );
  fprintf ( 1, '  f1(2) = 0.\n' );
  fprintf ( 1, '  f1(3) = 1.\n' );
  fprintf ( 1, '  f1(4) = 4.\n' );
  fprintf ( 1, '  f1(5) = 3.\n' );
  fprintf ( 1, '  f1(6) = 3.\n' );
  fprintf ( 1, '  f1(7) = 4.\n' );
  fprintf ( 1, '  f1(8) = 0.\n' );

  x0 = 2;
  fprintf ( 1, '\n' );
  fprintf ( 1, '  Starting argument X0 = %d\n', x0 );

  [ lam, mu ] = cycle_floyd ( @f1, x0 );

  fprintf ( 1, '\n' );
  fprintf ( 1, '  Reported cycle length is %d\n', lam );
  fprintf ( 1, '  Expected value is 3\n' );
  fprintf ( 1, '\n' );
  fprintf ( 1, '  Reported distance to first cycle element is %d\n', mu );
  fprintf ( 1, '  Expected value is 2\n' );

  return
end

