// Path: src/main/java/com/github/eostermueller/heapspank/garbagespank/metricprovider/AbstractJStatMetricProvider.java
// public abstract class AbstractJStatMetricProvider implements JStatMetricProvider  {
// 	@Override
// 	public String getColumnEnhanced(boolean skipCalculatedCol, JStatLine current, JStatLine previous, long measurementIntervalInMilliSeconds, int i) {
// 		return current.getRawColumnData()[i];
// 	}
// 	@Override
// 	public boolean metricsAvailableOnFirstJStatRun() {
// 		return true;
// 	}
// 	@Override
// 	public String getEnhancedHeader() {
// 		return null;
// 	}
// 	@Override
// 	public String getDescription() {
// 		return null;
// 	}
// 	@Override
// 	public String getOriginalHeader() {
// 		return null;
// 	}
// 	@Override
// 	public int getIndexOfFirstEnhancedColumn() {
// 		return -1;
// 	}
// 	
// 	@Override
// 	public String getColumnEnhancedAndFormatted(boolean skipCalculatedCol, JStatLine current, JStatLine previous, long measurementIntervalInMilliSeconds, int i) {
// 		String oneNumberInOneColumn = this.getColumnEnhanced(skipCalculatedCol, current, previous, measurementIntervalInMilliSeconds, i);
// 		return String.format("%6s", oneNumberInOneColumn);
// 	}
// }
// 
// Path: src/main/java/com/github/eostermueller/heapspank/garbagespank/metricprovider/JStatMetricProvider.java
// public interface JStatMetricProvider {
// 	public static final String CALC_COLUMN_NOT_SUPPORTED = "<CalculatedColumnNotSupported>";	
// 	
// 	public int getIndexOfFirstEnhancedColumn();
// 	
// 	JVMVersion[] getSupportedVersions();
// 	String getDescription();
// 	String getOriginalHeader();
// 	String getEnhancedHeader();
// 	boolean metricsAvailableOnFirstJStatRun();
// 	JStatOption getJStatOption();
// 	String[] getJStatMetricNames();
// 	/**
//    	 * What does enhanced mean?
// 	 * Indexes for most columns point to data straight from jstat.
// 	 * Other columns, however, require some calculations.
// 	 * @param skipCalculatedColumns 
// 
// 	 * @param current
// 	 * @param previous
// 	 * @param mesasurementIntervalInSeconds
// 	 * @param i
// 	 * @return
// 	 */
// 	String getColumnEnhanced(boolean skipCalculatedColumns, JStatLine current, JStatLine previous, long mesasurementIntervalInMilliSeconds, int i);
// 
// 	String getColumnEnhancedAndFormatted(boolean skipCalculatedCol,
// 			JStatLine current, JStatLine previous,
// 			long measurementIntervalInMilliSeconds, int i);
// }


import static org.junit.Assert.*;
import org.junit.Test;
import com.github.eostermueller.heapspank.garbagespank.metricprovider.AbstractJStatMetricProvider;
import com.github.eostermueller.heapspank.garbagespank.metricprovider.JStatMetricProvider;
package com.github.eostermueller.heapspank.garbagespank;




public class CalculatedColumnsTest {

	private static final String TEST_PREFIX = "T_";
	
	private static final String TEST_LINE = 
			//"COL1  COL2\n" +
		    "235   22153\n";

	@Test
	public void canFormatForPageDataExtractor() {

// Path: src/main/java/com/github/eostermueller/heapspank/garbagespank/metricprovider/AbstractJStatMetricProvider.java
// public abstract class AbstractJStatMetricProvider implements JStatMetricProvider  {
// 	@Override
// 	public String getColumnEnhanced(boolean skipCalculatedCol, JStatLine current, JStatLine previous, long measurementIntervalInMilliSeconds, int i) {
// 		return current.getRawColumnData()[i];
// 	}
// 	@Override
// 	public boolean metricsAvailableOnFirstJStatRun() {
// 		return true;
// 	}
// 	@Override
// 	public String getEnhancedHeader() {
// 		return null;
// 	}
// 	@Override
// 	public String getDescription() {
// 		return null;
// 	}
// 	@Override
// 	public String getOriginalHeader() {
// 		return null;
// 	}
// 	@Override
// 	public int getIndexOfFirstEnhancedColumn() {
// 		return -1;
// 	}
// 	
// 	@Override
// 	public String getColumnEnhancedAndFormatted(boolean skipCalculatedCol, JStatLine current, JStatLine previous, long measurementIntervalInMilliSeconds, int i) {
// 		String oneNumberInOneColumn = this.getColumnEnhanced(skipCalculatedCol, current, previous, measurementIntervalInMilliSeconds, i);
// 		return String.format("%6s", oneNumberInOneColumn);
// 	}
// }
// 
// Path: src/main/java/com/github/eostermueller/heapspank/garbagespank/metricprovider/JStatMetricProvider.java
// public interface JStatMetricProvider {
// 	public static final String CALC_COLUMN_NOT_SUPPORTED = "<CalculatedColumnNotSupported>";	
// 	
// 	public int getIndexOfFirstEnhancedColumn();
// 	
// 	JVMVersion[] getSupportedVersions();
// 	String getDescription();
// 	String getOriginalHeader();
// 	String getEnhancedHeader();
// 	boolean metricsAvailableOnFirstJStatRun();
// 	JStatOption getJStatOption();
// 	String[] getJStatMetricNames();
// 	/**
//    	 * What does enhanced mean?
// 	 * Indexes for most columns point to data straight from jstat.
// 	 * Other columns, however, require some calculations.
// 	 * @param skipCalculatedColumns 
// 
// 	 * @param current
// 	 * @param previous
// 	 * @param mesasurementIntervalInSeconds
// 	 * @param i
// 	 * @return
// 	 */
// 	String getColumnEnhanced(boolean skipCalculatedColumns, JStatLine current, JStatLine previous, long mesasurementIntervalInMilliSeconds, int i);
// 
// 	String getColumnEnhancedAndFormatted(boolean skipCalculatedCol,
// 			JStatLine current, JStatLine previous,
// 			long measurementIntervalInMilliSeconds, int i);
// }


// Path: src/test/java/com/github/eostermueller/heapspank/garbagespank/CalculatedColumnsTest.java
import static org.junit.Assert.*;
import org.junit.Test;
import com.github.eostermueller.heapspank.garbagespank.metricprovider.AbstractJStatMetricProvider;
import com.github.eostermueller.heapspank.garbagespank.metricprovider.JStatMetricProvider;

package com.github.eostermueller.heapspank.garbagespank;




public class CalculatedColumnsTest {

	private static final String TEST_PREFIX = "T_";
	
	private static final String TEST_LINE = 
			//"COL1  COL2\n" +
		    "235   22153\n";

	@Test
	public void canFormatForPageDataExtractor() {

		AbstractJStatMetricProvider metricNames = new AbstractJStatMetricProvider() {