// file: TesterOfTSACICHas.cpp

#include <cstdlib>
#include <iostream>

#include "ToolsetArrayComparableC.hpp"

	typedef long Element;
	
	static const Element min = -1000;
	static const Element max = 1000;
	
	static Element random_item () 
    {
		return Element((double(std::rand() - 1) / (RAND_MAX - 2)) * (max - min) + min);
	}
	
	static void init_random (std::vector<Element> & array)
    {
		for (int index = 0; index < array.size(); ++index)
        {
			array[index] = random_item();
		}
	}
	
	static void print (const std::vector<Element> & array) 
    {
		std::cout << "[";
		for (int index = 0; index < array.size(); ++index) 
        {
			std::cout << array[index] << " ";
		}
		std::cout << "]" << std::endl;
	}
	
	int main (int argc, char * argv[]) {
		if (argc < 2 || std::atoi(argv[1]) <= 0) 
        {
			std::cout << "Please call this command with a positive integer argument!";
		} 
        else 
        {
			std::vector<Element> array (std::atoi(argv[1]));
			init_random(array);
			ToolsetArrayComparable<Element>::sort(array);
			Element item = random_item();
			std::cout << "array: ";
			print(array);
			std::cout << " item " << item;
			if (!ToolsetArrayComparable<Element>::has(array, item)) 
            {
				std::cout << " not";
			}
			std::cout << " found in array.";
		}
		std::cout << std::endl;
		return 0;
	}
