// Path: src/main/java/com/performizeit/mjprof/parser/ThreadDump.java
// public class ThreadDump {
//   protected JStackHeader header;
//   ArrayList<ThreadInfo> stacks = new ArrayList<>();
//   int JNIglobalReferences = -1;
// 
//   public static String JNI_GLOBAL_REFS = "JNI global references:";
// 
//   public JStackHeader getHeader() {
//     return header;
//   }
// 
//   public ThreadDump(String stringRep) {
//     String[] splitTraces = stringRep.split("\n\"");  // Assuming that thread stack trace starts with a new line followed by "
// 
//     header = new JStackHeader(splitTraces[0]);
//     for (int i = 1; i < splitTraces.length; i++) {
//       if (splitTraces[i].startsWith(JNI_GLOBAL_REFS)) {
//         try {
//           JNIglobalReferences = Integer.parseInt(splitTraces[i].substring(splitTraces[i].indexOf(":") + 2).trim());
//         } catch (NumberFormatException e) {
//           // do nothing so we missed the JNI global references I do not know what to do with it.
//         }
// 
//       } else {
//         stacks.add(new ThreadInfo("\"" + splitTraces[i]));
//       }
//     }
//   }
// 
//   public ThreadDump() {
//     super();
//   }
// 
//   public ArrayList<ThreadInfo> getStacks() {
//     return stacks;
//   }
// 
//   public void addThreadInfo(ThreadInfo ti) {
//     stacks.add(ti);
//   }
// 
//   public void setStacks(ArrayList<ThreadInfo> stacks) {
//     this.stacks = stacks;
//   }
// 
//   @Override
//   public String toString() {
//     StringBuilder s = new StringBuilder();
//     s.append(header).append("\n\n");
// 
//     for (ThreadInfo stack : stacks) {
//       s.append(stack.toString()).append("\n");
//     }
// 
//     return s.toString();
//   }
// 
// 
//   public void setHeader(String header) {
//     this.header = new JStackHeader(header);
//   }
// 
//   public void setHeader(JStackHeader header) {
//     this.header = header;
//   }
// 
//   public ArrayList<ThreadInfo> cloneStacks() {
//     ArrayList<ThreadInfo> newStcks = new ArrayList<>();
//     for (ThreadInfo stk : getStacks()) {
//       newStcks.add(stk);
//     }
//     return newStcks;
//   }
// 
//   public int getJNIglobalReferences() {
//     return JNIglobalReferences;
//   }
// 
//   public void setJNIglobalReferences(int JNIglobalReferences) {
//     this.JNIglobalReferences = JNIglobalReferences;
//   }
// }


import static org.junit.Assert.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import org.junit.Test;
import com.performizeit.mjprof.parser.ThreadDump;
package com.performizeit.mjprof.plugins.mappers;





public class MergedCalleesTest {
	

	@Test
	public void testName() throws Exception {
		  MergedCallees g = new MergedCallees("org.eclipse.core.internal.jobs.WorkerPool.test");
	  //	MergedCallees g = new MergedCallees("java.lang.Object.wait");
		//    MergedCallees g = new MergedCallees("org.eclipse.core.internal.jobs.WorkerPool.startJob");

		//	GroupByProp g = new GroupByProp("org.eclipse.core.internal.jobs.WorkerPool.test");
		//	ThreadDump dump = new ThreadDump(readFromFile("src/test/res/test1.txt"));
// Path: src/main/java/com/performizeit/mjprof/parser/ThreadDump.java
// public class ThreadDump {
//   protected JStackHeader header;
//   ArrayList<ThreadInfo> stacks = new ArrayList<>();
//   int JNIglobalReferences = -1;
// 
//   public static String JNI_GLOBAL_REFS = "JNI global references:";
// 
//   public JStackHeader getHeader() {
//     return header;
//   }
// 
//   public ThreadDump(String stringRep) {
//     String[] splitTraces = stringRep.split("\n\"");  // Assuming that thread stack trace starts with a new line followed by "
// 
//     header = new JStackHeader(splitTraces[0]);
//     for (int i = 1; i < splitTraces.length; i++) {
//       if (splitTraces[i].startsWith(JNI_GLOBAL_REFS)) {
//         try {
//           JNIglobalReferences = Integer.parseInt(splitTraces[i].substring(splitTraces[i].indexOf(":") + 2).trim());
//         } catch (NumberFormatException e) {
//           // do nothing so we missed the JNI global references I do not know what to do with it.
//         }
// 
//       } else {
//         stacks.add(new ThreadInfo("\"" + splitTraces[i]));
//       }
//     }
//   }
// 
//   public ThreadDump() {
//     super();
//   }
// 
//   public ArrayList<ThreadInfo> getStacks() {
//     return stacks;
//   }
// 
//   public void addThreadInfo(ThreadInfo ti) {
//     stacks.add(ti);
//   }
// 
//   public void setStacks(ArrayList<ThreadInfo> stacks) {
//     this.stacks = stacks;
//   }
// 
//   @Override
//   public String toString() {
//     StringBuilder s = new StringBuilder();
//     s.append(header).append("\n\n");
// 
//     for (ThreadInfo stack : stacks) {
//       s.append(stack.toString()).append("\n");
//     }
// 
//     return s.toString();
//   }
// 
// 
//   public void setHeader(String header) {
//     this.header = new JStackHeader(header);
//   }
// 
//   public void setHeader(JStackHeader header) {
//     this.header = header;
//   }
// 
//   public ArrayList<ThreadInfo> cloneStacks() {
//     ArrayList<ThreadInfo> newStcks = new ArrayList<>();
//     for (ThreadInfo stk : getStacks()) {
//       newStcks.add(stk);
//     }
//     return newStcks;
//   }
// 
//   public int getJNIglobalReferences() {
//     return JNIglobalReferences;
//   }
// 
//   public void setJNIglobalReferences(int JNIglobalReferences) {
//     this.JNIglobalReferences = JNIglobalReferences;
//   }
// }


// Path: src/test/java/com/performizeit/mjprof/plugins/mappers/MergedCalleesTest.java
import static org.junit.Assert.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import org.junit.Test;
import com.performizeit.mjprof.parser.ThreadDump;

package com.performizeit.mjprof.plugins.mappers;





public class MergedCalleesTest {
	

	@Test
	public void testName() throws Exception {
		  MergedCallees g = new MergedCallees("org.eclipse.core.internal.jobs.WorkerPool.test");
	  //	MergedCallees g = new MergedCallees("java.lang.Object.wait");
		//    MergedCallees g = new MergedCallees("org.eclipse.core.internal.jobs.WorkerPool.startJob");

		//	GroupByProp g = new GroupByProp("org.eclipse.core.internal.jobs.WorkerPool.test");
		//	ThreadDump dump = new ThreadDump(readFromFile("src/test/res/test1.txt"));
		ThreadDump dump = new ThreadDump(readFromFile("src/test/res/test2.txt"));