/*
 * TesterOfTSACIHas.java
 *
 * Created on 9. November 2005
 * @author hug
 */

public class TesterOfTSACIHas
{
    private static final int min = -1000;
    private static final int max = 1000;
	
    private static java.util.Random random = new java.util.Random();
    
    private static int randomItem () 
    {
        assert random != null : "precondition";
        int result = random.nextInt(max - min + 1) - min;
        assert min <= result : "postcondition";
	assert result <= max : "postcondition";
	return result;
    }
	
    private static void initRandom (Integer[] array)
    {
        assert random != null : "precondition";
        assert array != null : "precondition";
        for (int index = 0; index < array.length; ++index)
	{
            array[index] = randomItem();
	}
    }

    private static void print (Integer[] array)
    {
        assert array != null : "precondition";
        System.out.print("[");
	for (int index = 0; index < array.length; ++index)
	{
            System.out.print(array[index] + " ");
	}
	System.out.println("]");
    }
	
    private static final String HINT =
        "Please call this command with a positive integer argument!";
    
    public static void main (String[] args)
    {
	if (args.length < 1)
        {
            System.out.println (HINT);
            return;
	} 
        int size = 0;
        try 
        {
            size = Integer.parseInt(args[0]);
        }
        catch (Exception e)
        {
            System.out.println (HINT);
            return;
        }
        if (size <= 0)
        {
            System.out.println (HINT);
            return;
        }
        ToolsetArrayComparable<Integer> tsaci = new ToolsetArrayComparable<Integer>();
        Integer[] array = new Integer[size];
        initRandom(array); 
        tsaci.gapsort(array);
        int item = randomItem();
        System.out.print("array: ");
        print(array);
        System.out.print("item " + item);
        if (!tsaci.has(array, item)) 
        {
            System.out.print(" not");
        }
        System.out.print(" found in array.");
    }
}
