import rpi.goldsd.container.*;

public class SequenceTest
{
  public static void main( String[] args )
  {
    IntSequence I = new IntSequence();
    java.util.Enumeration e = I.sequence();
    for ( int i = 0 ; i < 10 ; i++ )
      System.out.println( "[" + i + "]: " + (Int)e.nextElement() );

    System.out.println();

    e = I.sequence( 4000 );
    for ( int i = 0 ; i < 10 ; i++ )
      System.out.println( "[" + i + "]: " + (Int)e.nextElement() );

    System.out.println();

    RandomIntSequence R = new RandomIntSequence();
    e = R.sequence( 42 );
    Table T = new Table();
    for ( int i = 0 ; i < 50 ; i++ )
    {
      Int value = (Int)e.nextElement();
      System.out.print( value + "  " );
      if ( T.contains( value ) )
      {
        System.out.println();
        System.out.println( "*** Cycle encountered on iteration " + i + "." );
        break;
      }
      T.add( value );
    }

    System.out.println();

    AlphabetSequence A = new AlphabetSequence();
    e = A.sequence();
    while ( e.hasMoreElements() )
      System.out.print( e.nextElement() );
    System.out.println();
    e = A.sequence( 'G' );
    while ( e.hasMoreElements() )
      System.out.print( e.nextElement() );

    System.out.println();

    PrimeNumberSequence P = new PrimeNumberSequence();
    e = P.sequence();
    for ( int i = 0 ; i < 100 ; i++ )
      System.out.print( e.nextElement() + "  " );
    System.out.println();
    e = P.sequence( 12347 );
    for ( int i = 0 ; i < 100 ; i++ )
      System.out.print( e.nextElement() + "  " );
    System.out.println();
  }
}

