/*****************************************************
 Amino Acid Preference Toolkit in Java
 Pathogen Project
 Department of Computer Science and Engineering
 University of South Carolina
 Columbia, SC 29208
 Contact Email: rose@cse.sc.edu
*****************************************************/

import java.io.*;
import java.util.*;

public class ValidationFormatFileForSVMTesting 
{
	public static void main(String[] args) throws Exception
	{
		// args[0] = testing data file
		// args[1] = output filename


		BufferedReader bufferedReader = new BufferedReader(new FileReader(args[0]));
		PrintWriter printWriter = new PrintWriter(new FileWriter(args[1]));
		BufferedReader dataReader;
		String file;
		String dataLine;
		StringTokenizer tokenizer;

		double value;
		String point;

		boolean fileNAN;

		while ((file = bufferedReader.readLine()) != null)
		{
			fileNAN = false;

			String trainingLabel = "0";
			int featureCount = 1;
				
			printWriter.print(trainingLabel);
				
			dataReader = new BufferedReader(new FileReader(file));
			while ((dataLine = dataReader.readLine()) != null)
			{
				tokenizer = new StringTokenizer(dataLine);
				while (tokenizer.hasMoreTokens())
				{
					point = tokenizer.nextToken();
					if ((point.equals("NaN")) && (fileNAN == false))
					{
						System.out.println(file +  " has a NaN entry");
						fileNAN = true;
					}
					else
					{

						value = new Double(point).doubleValue();
						// sparse encoding
						if (value != 0.0)
						{
							printWriter.print(" " + featureCount + ":" + value);
						}	
						featureCount++;
					}
				}
			}
			printWriter.println();
			dataReader.close();
		}
		bufferedReader.close();
		printWriter.flush();
		printWriter.close();
	}
}
