public void evaluate(int trainItem, int testItem){
		
		String DataDirectory = "RandomPieces_200";
		String opticsFilename = "ids200_" + trainItem + "-" + testItem + ".optics";
		
		ArrayList<ReachabilityPoint> ordering = OpticsOrderingReader.readFile(DataDirectory + File.separatorChar+opticsFilename);
		
		int minpts = 200;
		double xi = 0.2;
		ArrayList<SteepArea> areas1 = findSteepAreas2(ordering, minpts ,xi);
		
		ArrayList<SteepArea> clusters = extractClusters(areas1, ordering, minpts, xi);
		
		
		
		
		OpticsPlot.plotGraphAreas("Clusters", ordering, clusters);
		
		for (int i = 0; i < areas1.size(); i++) {
			System.out.println("Area "+i+ "\tS:" + areas1.get(i).startIndex + "\tE:"+ areas1.get(i).endIndex + "\tsize:  "+( areas1.get(i).endIndex- areas1.get(i).startIndex+1));
		}
		
		for (int i = 0; i < clusters.size(); i++) {
			System.out.println(i+"\t" + clusters.get(i).startIndex + "\t" + + clusters.get(i).endIndex);
		}
		
		if(true)  return;
		
		MinHeap SteepAreaList = findSteepAreas(ordering, 0.1);		//assigns value to SteepAreaList
		
		
		
		//write to file 		
		ArrayList<SteepArea> areas = getAreas(SteepAreaList);		//areas including flat areas
		
		/**PRINT AREAS**/
		for (int i = 0; i < areas.size(); i++) {
			SteepArea steeparea = areas.get(i);
			
			System.out.print("SteepArea: \t"+steeparea.startIndex+" \t" + steeparea.endIndex + "\t");
			if(steeparea.isFlat){
				System.out.println("FLAT");
			}else if(steeparea.isSteepUp && !steeparea.isFlat){
				System.out.println("UP");
			}else if(!steeparea.isSteepUp && !steeparea.isFlat){
				System.out.println("DOWN");
			}
		}
		
		
		OpticsPlot.plotGraphAreas("Eval", ordering, areas);
		
//		ordering = assignToCluster(ordering,areas);				//fill values of assignedLabel Field
//		
//		
//		getAccuracy(ordering);
//		
//		System.out.println("Accuracy");
//		
		//write to file 
		
		
		//evaluate accuracy
		

	}