
class RBapp{

	public static void main(String[] args){
		int i;
		Collection c = null;
		Node x;
		Comparable find;
		
		c = new Collection();
		System.out.println();
		System.out.println("Empty collection.....");
		c.DeleteFromCollection(new CompInt(1));
			
		for(i = -100; i < 100; i++) {
			System.out.print(i);	
			if (c.AddToCollection(new CompInt(i))){
				System.out.print("[");	
				System.out.print(c.BlackHeight());
				System.out.print("/");
				System.out.print(c.RedCount());	
				System.out.println("]");
			}
			else System.out.println(": Error in inserting node");
					
		}
		for(i = -100; i < 100; i++) {
			System.out.print(i);	
			if (c.FindInCollection(new CompInt(i))!=null)
				System.out.println(": found");
			else System.out.println(": Error in inserting node");
					
		}
		
		System.out.println();
		find = c.FindInCollection(new CompInt(46));
		System.out.print("found: ");
		System.out.println(find.toString());

		x = c.FindNode(new CompInt(46));
		if (x != null){
			c.PrintNode(x);	
		}
		else System.out.println("NOT GOOD! 46 Not Found!!");

		c.DeleteFromCollection(new CompInt(46));
		System.out.println("after deletion!!");
		x = c.FindNode(new CompInt(46));
		if (x != null){
			c.PrintNode(x);	
		}
		else System.out.println("YES!!! 46 has been deleted!!");

		 System.out.println();
		System.out.println("Another collection......");
		c = new Collection();
		c.AddToCollection(new CompInt(50));
		System.out.println("50: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(35));
		System.out.println("35: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(78));
		System.out.println("78: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(97));
		System.out.println("97: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(23));
		System.out.println("23: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(25));
		System.out.println("25: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(39));
		System.out.println("39: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(61));
		System.out.println("61: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(62));
		System.out.println("62: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(11));
		System.out.println("11: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(1));
		System.out.println("1: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(99));
		System.out.println("99: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(98));
		System.out.println("98: "+c.BlackHeight() );
		c.AddToCollection(new CompInt(-568));
		System.out.println("-568: "+c.BlackHeight());

		x = c.FindNode(new CompInt(456));
		if (x != null){
			c.PrintNode(x);	
		}
		else System.out.println("GOOD! 456 Not Found!!");
		
		x = c.FindNode(new CompInt(39));
		if (x != null){
			c.PrintNode(x);	
		}
		else System.out.println("GOOD! 39 Not Found!!");

		c.DeleteFromCollection(new CompInt(39));
		System.out.println("after deletion!!");
		x = c.FindNode(new CompInt(39));
		if (x != null){
			c.PrintNode(x);	
		}
		else System.out.println("YES!!! 39 has been deleted!!");

		 System.out.println();
		
	}
		

}
