COSTA: COSt and Termination Analyzer for Java Bytecode
    
    /*
 *  Copyright (C) 2009  E.Albert, P.Arenas, S.Genaim, G.Puebla, and D.Zanardini
 *                      https://costa.ls.fi.upm.es
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package complexityClasses;

/**
 * This class allows executes the methods in the different complexity
 * classes. This can be used for comparing how the runtime increases
 * with the value of entry.
 * 
 * @author German Puebla
 *
 */
public class Tester {

	public static void main (String[] a) {
		final int entry = 41;
		double d0;
		int res;


		Constant c = new Constant();
		d0 = System.currentTimeMillis();
		res = c.funConstant(entry);
		printResults("Constant", res, d0);
		
		Logarithmic log = new Logarithmic();
		d0 = System.currentTimeMillis();
		res = log.funLogarithmic(entry);
		printResults("Logarithmic", res, d0);
		
		Linear lin = new Linear();
		d0 = System.currentTimeMillis();
		res = lin.funLinear(entry);
		printResults("Linear", res, d0);

		NLogN nln = new NLogN();
		d0 = System.currentTimeMillis();
		res = nln.funNLogN(entry);
		printResults("NLogN", res, d0);
		
		Quadratic q = new Quadratic();
		d0 = System.currentTimeMillis();
		res = q.funQuadratic(entry);
		printResults("Quadratic", res, d0);
		
		Exponential exp = new Exponential();
		d0 = System.currentTimeMillis();
		res = exp.funExponential(entry);
		printResults("Exponential", res, d0);
		
	}
	
	private static void printResults(String name, int res, double d0) { 
		double d1 = System.currentTimeMillis();
		System.out.print("For " + name + " the result is ");
		System.out.println(res);
		System.out.println("Executed in "+ (d1-d0) + " milliseconds");
	}
}